Computer Science

Programming classes for teenagers. Computer Science studies the systematic representation and processing of information. Our curriculum follows topics in the order of: Intro Java, Object Oriented Programming, Data Structures, and Algorithms, which is comparable in content to a college computer science core curriculum. However, the pacing is designed to be fun and engaging for students (aged 13+).


Level 0a

CS00a - Intro to Computer Science

This is a project oriented introduction to Computer Science using the Java language. Students learn basic programming concepts and apply it through weekly graphical mini-projects and homework assignments. Students create their own graphical program / game as a final project for this class.

Detailed course information

Prerequisites: Age 13+ or instructor approval. 25 wpm typing speed. Familiarity with algebra

Course details:

Level 0b

CS00b - Games and Apps in Processing

This class reviews CS00 Java basics and mathematical concepts via making applications and games. Students will also learn about coordinate transformation, curves and other canvas features in Processing. Students create several projects throughout the semester. Trigonometry and physics optionally covered.

Typical projects include physics, affine transformations, side scrolling, map editing, connect4, topdown shooters, curves, etc.

Detailed course information

Prerequisites: CS00a

Course details:

Level 1a

CS01a - Accelerated Intro to CS with Java

This class teaches Java with a focus on mathematics and problem solving. Weekly homework sets are assigned, and students are expected to spend 1-2 hours outside of class on homework and reviews. Topics include: types, variables, if statements, loops, Strings, functions, recursion, and classes.

In class projects include vigenere cipher, towers of hanoi, and button objects.

Detailed course information

Prerequisites: CS00a/b

Course details:

Level 1b

CS01b - Object Oriented Java

This course is taught in Java using the Processing and Eclipse IDEs. This course is part of the computer science series that prepares students for the AP Computer Science exam and computer science competitions. This course emphasises object oriented programming, polymorphism, and algorithmic complexity.

Detailed course information

Prerequisites: CS01a

Course details:

Level 2a

CS02a - AP CS and Object-Oriented Programming

CS02a covers object-oriented programming, Eclipse and Maven, recursion, sorting and binary search algorithms and data structures (LinkedLists and ArrayLists).

Detailed course information

Prerequisites: CS01b

Course details:

Level 2b

CS02b - Intermediate Data Structures and Algorithms

In this class, students review topics such as priority queues, trees and graphs. Then, they apply it to analyze and visualize real world data sets. Students will create several projects using intermediate algorithms. Topic include graph search algorithms, hashing theory, multithreaded programming, UI libraries.

Typical projects include huffman coding, maze solving, graph distance plotting, chat clients and Java library usage.

Detailed course information

Prerequisites: CS02a

Course details:

AP Prep

APPREP - AP Computer Science Exam Prep

This class prepares students for the AP Computer Science A exam. Besides practice exams, this course reviews material identified by diagnostic exams to improve weaknesses.

Prerequisites: Completion of AP Computer Science in school or CS02a

Course details: