Principles 3
Ages 13-18

Data Structures

Prerequisites: Principles 2

Many problems that we try to solve tend to take place in the real, physical world; much of problem solving using computer programming, however, takes place in the virtual solutioning space of a computer program. Data structures are the tools in computer programming that help us bridge this divide - allowing us to capture the features of real-world problems by expressing them as detailed data in our computer programs, which can then be manipulated towards a solution.

In the physical world, many people solve problems through analogy - rehashing and reusing solutions to old problems that we have seen to solve new problems that look and feel familiar. In computer science, the study of how to solve specific problems by focusing on the general shared traits between them is what computer scientists call abstraction. Code Campers will learn how to use the general, abstract data structures like lists and dictionaries by adapting them to fit the specific context of the problem at hand. This efficient approach to problem solving is what enables financial coders to create programmatic representations of stocks and bonds to model market prices, and bioinformatics researchers to code up the human genome to study its properties.

After this course, students will be able to use data structures to fashion more complex, detailed and powerful computer programs. By applying their new knowledge across various contexts, they will develop the skills to discover the commonalities in the structures of problems in different domains and design general solutions to these problems.

UPCOMING SESSIONS
4:30pm - 6:30pm
Weekend Weekly
2hrs x 8 Saturdays:
Apr 21, 28
May 5, 12, 19, 26
Jun 2, 9
Location
SGD880
Sign Up
4:00pm - 6:00pm
Weekday Weekly
2hrs x 8 Fridays:
May 4, 11, 18, 25
Jul 27
Aug 3, 10, 17
Location
SGD830
Sign Up
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.