top of page
Science Courses

Curriculum

Our curriculum is designed for 4th - 12th grade students, focusing on teaching problem solving and computational thinking, with an emphasis on being intuitive and engaging. The introductory courses assume no prior knowledge of computer programming, while advanced courses, such as USACO and Introduction To AI,  cover theory and concepts that are normally taught in college level courses. There are also courses that are more casual and fun, such as our "Making Games" series and GUI with Tkinter series. 


The curriculum is project based and is very hands-on. Whether solving a USACO problem, controlling a robot, solving a puzzle, or building a computer game, students are required to put what they learn into practice. These projects and problems not only make learning relevant but also help improve students' algorithmic problem solving skills.

Introduction To CS With Python

Building A Strong Foundation

This courses is a rigorous introduction to computer science for students without prior programming experience. We explore problem-solving methods and algorithm development using the high-level programming languages Python. Python is a language with a simple and easy to understand syntax, and a powerful set of libraries. It's the easiest language to learn for a beginner. But it is widely used in many industrial, scientific, and AI applications.


In addition to covering data types and control flow, we focus on developing students' algorithmic problem solving skills. The examples and problems used in this course are drawn from diverse areas from text processing to fun games and puzzles and even problems from programming competitions such as ACSL (American Computer Science League).

USA Computing Olympiad (USACO) Training

Bronze and Silver Levels

USA Computing Olympiad is the most recognized competition in computer science for pre-collegiate students. The competition focuses on testing students' computational problem solving skills and are designed to challenge even the very best students.

The Bronze level course is for students with no prior competitive programming experience but have taken at least one year of programming classes. It is a structured and rigorous training to prepare students for the Bronze contest. The Silver level course is for students who have been promoted to the Silver division or have completed advanced bronze level classes. 

Graphical User Interface Design

Building Visual Interactivity

User interface is very important for any software applications. In this two-part course, students learn how to create graphical user interface using the most popular python graphical user interface library Tkinter. The objective of this course is to learn the Tkinter framework and to use widgets to create graphical user interface efficiently. The course contains various projects to boost students' confidence in building their own GUI apps. The use of Tkinter framework will also expose students to the event-driven programming paradigm which are important in many real-world applications.


The visual and interactive nature of this course help students to grasp complex data structure and program logics easily. This course is for students who have taken the Intro To CS courses.

ACSL Competition

American Computer Science League

American Computer Science League is a well recognized competition in computer science for pre-collegiate students. The contests have both programming problems and none programming problems that test student's knowledge in computer science ranging from Number Systems to Boolean Algebra to Digital Electronics. 

The objectives of this series of courses is to prepare students for the contests. The focus of the course on computer science knowledge that is required for the contest as well as programming techniques and problem solving skills.

C++ For Coding Competition

Mastering Standard Template Library

While more and more students are using python in USACO and there is no disadvantage in doing so for the Bronze level, there is significant advantages for using C++ (or Java) for Silver level and above in USACO. 

This course is designed to help students who are looking to switch to C++ from Python, Java, or another programming language. It is not for students who have no prior programming experience. 

Discrete  Mathematics

Mathematical Foundation For CS

The mathematics of modern computer science is built almost entirely on discrete math, in particular Boolean algebra, combinatorics and graph theory. This means that in order to learn the fundamental algorithms used by computer programmers, students will need a solid background in these subjects.

Inductive Reasoning

Recognizing Patterns In Solution Processes

In computational problem solving, you need to be able to generalize your solution to the specific cases to solution to the general problem. This requires a new reasoning skill: inductive reasoning. Inductive reasoning is about going from specific to general. In this course we will use fun puzzles and games to introduce students to the concept and the process of inductive reasoning.

Introduction To Artificial Intelligence

Building Intelligent Agents

The course is designed to provide students with a broad exposure to the field of Artificial Intelligence from the architectural and algorithmic perspectives by building increasing more intelligent agents - from simple reflex agents, to agents who can reason about their own actions and can plan to achieve their goals, to agents who cooperate or compete with other agents.

This course will combine theory with practice. Students use techniques they learn to create agents that can escape a maze, solve a sudoku puzzle, or plays a tic-tac-toe game against human player.

AI For Robots Using Python

Making Robots Smart

This course teaches programming and AI in the context of creating an intelligent robot. AI for Robot is for students with little or no prior experience of programming. Students will learn the basic concept of programming (using Python) to create interesting behaviors for the robots such as obstacle avoidance, escaping a maze, or performing a robot conga dance. Programming of a robot help engage students and also make abstract concept more intuitive. 

Making Games With Pygame

Learn python programming by making fun games

This 3-part course is a rigorous introduction to game making using the popular pygame library. Students will learn the basic components of a game from user interface to game AI, from level design to character animation. Students will develop a number of popular games from scratch. In doing so, students put their python programming knowledge to use. The visual and interactive aspects of computer games not only help engage students but also can help students grasp abstract concepts by visualization and interaction.

bottom of page