Principles of Code Sequence (Age 13-16)

Principles of Code: Level 5
Secondary 1 - 4 (Ages 13-16)

Algorithms

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.

UPCOMING SESSIONS
10:00am - 12:00pm
Weekly Schedule
8 Sunday classes (2 hrs each):
Jan 14, 21, 28
Feb 4, 11, 18, 25
Mar 4
Location
SGD785
Early Bird*: SGD760
Sign Up
*at least 14 days before the first class
2:15pm - 4:15pm
Weekly Schedule
8 Sunday classes (2 hrs each):
Jan 14, 21, 28
Feb 4, 11, 18, 25
Mar 4
Location
SGD785
Early Bird*: SGD760
Sign Up
*at least 14 days before the first class
Frequently Asked Questions

“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.

Communicating with a computer requires the use of a language, just like how communicating with another human being involves the use of a language like English or Korean. The difference is that writing code for a computer in a particular language is a little like speaking to somebody who is absolutely particular about grammar and punctuation - any deviation from a language’s rules results in a computer not being able to accept the programmed instructions. Different computer languages are well-suited to doing different tasks. For example, JavaScript is the undisputed lingua franca of the web, LISP is used extensively by NASA and in Artificial intelligence research while C and FORTRAN finds its adherents in high finance especially in the field of high frequency trading.

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.