Prerequisites: Principles of Code 4
An algorithm is defined as a sequence of steps required to solve a given problem. In the next step of the Code Campus learning journey, we concern ourselves with the analysis of algorithms - a careful, rigorous, hands-on study of how to improve our solutions. What makes one solution better than another? How is that improvement quantified?
As solving a problem almost always involves an imposition of structure upon chaos, our foray into this topic begins with a hard look at sorting algorithms - ways to put data in order. When asked for “the most efficient way” to order a million numbers while on a visit at Google, Barack Obama famously remarked “I think the Bubble sort would be the wrong way to go.” In this, the American president was right - astonishingly, moving from a Bubble sort to a Quicksort reduces the time taken to sort by a factor of tens of thousands.
We will also study how shrewdly structuring data is often a big chunk of problem solving - how does thinking about the internet or the retail economy in terms of networks and graphs allow us to better model the flow of information or trade?
In the previous courses, we learned how to code - in this course, we will learn, quite simply, how to code better.
“Coding” is synonymous with “programming”. It refers to the art of writing computer code, which are instructions that a computer can follow to solve problems. Practically every facet of technology that we encounter in our daily lives - from online banking systems to video games on our iPhone, from the GPS systems we rely on navigation to the security systems that protect our homes and offices, is created from code.
Python is one of the world's most popular languages (consistently ranked within the Top 10 in recent years by Tiobe ) that is known for its learner-friendly syntax, versatility and ubiquity in the workplace. It is also a language that most of our instructors have had the pleasure of using in the workplace. In addition, students and parents might be interested to know that Computing will be available as an examinable subject for the Singapore "O" levels beginning in 2017 and Python will be the language taught in the curriculum.