Computer Science

Grades 10-12

In the modern world, computer science enhances every aspect of our work and play!  From powerful mobile software development to information gathering, online searches and resource planning. Computer science takes the theoretical and brings it to life through practical applications. It places emphasis on the foundations and theory of computer science while exploring discrete mathematics, data structures, algorithms, logic, management of complexity, programming languages and numerical computation. The Computer Science stream is focused on academically challenging students while creating a fun and engaging experience with programming and software development. You don’t need to have any programming experience to have an awesome time in this stream!

New Curriculum:

In the Computer Science stream, we will take the math you are learning in high school and make it fun and useful by creating animations and visualizations and several different types of games.  The elm language we use is open-source, and easy to install on your own computer.  So you will be able to share your games with anyone to run on their computer, tablet or smartphone.  And you can surprise your classmates with animated presentations way beyond what you can do with PowerPoint or Prezi.  


We will start with basic programming concepts in elm, which leverage your knowledge of algebra.  In fact, we will show how to get elm to do your algebra homework, as an example.


We will then show you how to break down complex scenes into simple pieces, including the fractal structures in nature, and how to create the impression of a 3D scene by placing 2D objects in a virtual puppet-theatre.


We will then look at the visualization of quantitative data, which will give you a head start in preparing presentations, but which is actually quite important to scientists trying to discover patterns in huge data sets.  We will also talk about automated ways of analyzing data called Machine Learning and how they may lead to Artificial Intelligence.  (But building your own AI is optional. :slightly_smiling_face: )


To apply this knowledge to games, we need one more ingredient:  user interaction.  Fortunately, we have developed a library specifically to make it easy for beginners to quickly learn to model user interaction and develop completely customizable user controls from scratch in a day.  See:

Final Project

As a final project, you or a team of your new friends will have the choice of building either an animated story or a game.