# Syllabus Description

## Introductory Math

Introductory Math is where you’ll learn about algebra, linear equations, 2D and 3D geometry, and the beginnings of statistics. It’s important that you master the Math concepts taught in Introductory Math - they are core concepts that form the basis of many of the advanced Math you’ll study later.

## Middle School Math

Middle School is where you’ll learn about algebraic modelling, connections between 2D and 3D shapes, and probability. The Math concepts taught in Middle School build on the foundation laid in Introductory Math - they enable you to explore applications from engineering to art.

## High School Math

High School is where you’ll learn about linear equations, geometric proofs, and the deep connections between algebra and geometry. The Math concepts taught in High School integrate all that came before and will launch you into your later career.

Each Unit teaches more granular concepts which roughly correspond to those listed below. These are aligned with most reputable “Introduction to Computer Science” courses, including those of Stanford University and Khan Academy.

### Unit 1 - Variables

• Creating variables
• Using variables that only give you current values
• Using variables that require previous values
• Using built-in/automatic dynamic variables
• Scope and updating variables

### Unit 2 - Functions

• When to use a function
• Defining functions
• Using premade functions
• Functions with a consequence vs functions with a return value
• Using different functions with the same inputs
• Composition of functions

### Unit 3 - Logic

• Booleans and If-statements with equalities
• If-statements with inequalities
• Not-modifiers and else clauses
• If-statements and discrete mode/state variables (variables that change every so often, like ‘Direction’ or ‘Game Over’)
• If-statements and continuous state variables (variables that change every frame, such as position if speed is being controlled)
• If-statements with inequalities

### Unit 4 - Loops

• Introduction to loops
• Using a loop variable
• Nested Loops
• Loops without an increment of 1
• Loops without a numerical increment

### Unit 5 - Types and Objects

• Creating an object
• Using an object
• Combining functions with objects
• Encapsulation and advantages of objects

### Unit 6 - Lists

• Creating and using a simple list
• Different types of lists
• Creating and using nested lists
• Storing objects in lists
• Benefits of lists
• A choice function on lists

### Unit 7 - Classes

• Creating a class
• Using a class
• Creating class behavior
• Spawning many objects with classes
• Abstraction and the advantages of classes