Sample CodeHS Syllabus for 60 Minute High School Class

At a Glance

General Topic Days
Programming With Karel 1 - 18
Basic Javascript and Graphics 19 - 41
Animation and Games 42 - 53
Basic Data Structures 54 - 75
Game Design: Helicopter 76 - 86


Day-by-Day Breakdown

Day Activities Terms Discussion Questions
1 Introduction to Programming With Karel
Introduction to Programming With Karel
Quiz: Karel Commands
Our First Karel Program
Your First Karel Program
Short Stack
Karel
What is programming?

Who/what is Karel?

What is a command?

What is the analogy we use to describe functions in Karel?

What is a function?

2 More Basic Karel
More Basic Karel
Tennis Ball Square
Make a Tower
Pyramid of Karel
What is a command?

What is a function?

What is the analogy we use to describe functions in Karel?

Who/what is Karel?

What is programming?

3 Karel Can't Turn Right
Karel Can't Turn Right
Tower and Turn Right
Slide Karel
Fireman Karel
What is a command?

What is a function?

Who/what is Karel?

What is a bug?

4 Functions in Karel
Functions in Karel
Turn Around
Pancakes
Mario Karel
Function body
What is a function?

What is a bug?

What are the key similarities and differences between lists and sets?

5 The Start Function
The Start Function
Tower with Start Function
Pancakes with Start
Function
Start Function
Bug
Top Down Design
Decomposition
Code
What is a function?

What is a bug?

What is a command?

What is top down design?

How would you apply top down design to everyday activities? - Eating lunch - Waking up - Playing a sport

6 Top Down Design and Decomposition in Karel
Top Down Design and Decomposition in Karel
Hurdle Karel
The Two Towers
Top Down Design
Decomposition
What is top down design?

How would you apply top down design to everyday activities? - Eating lunch - Waking up - Playing a sport

7 Commenting Your Code
Commenting Your Code
Hurdle Karel
The Two Towers + Comments
Comment
Why should you use comments?

What is programming style?

What can SuperKarel do?

8 Super Karel
Super Karel
Hurdle Karel (with SuperKarel)
The Two Towers + SuperKarel
Comment
Why should you use comments?

What can SuperKarel do?

What are the important factors for good programming style?

9 For Loops
For Loops
Repeated Move
Put Down Tennis Balls
Take 'em All
Dizzy Karel
For Loop Square
Lots of Hurdles
Loop
For Loop
When writing programs, we often have a set of commands that we want repeated a certain number of times. We can use a for loop to repeat these commands a set amount of times instead of having to write each command over and over. There are many times in real life that we essentially use loops to repeat some basic action over and over. Can you think of any?

What is a for loop?

What is a loop?

When do we use a for loop?

10 If Statements
If Statements
If Statements
Safe Take Ball
Is There a Ball?
If Statement
What is an if statement? When would you use an if statement?

11 If/Else Statements
If/Else Statements
If/Else Statements
One Ball in Each Spot
Right Side Up
If Else Statement
What is an if else statement? How is this different than an if statement?

What are examples of situations when you use if statements or if/else statements in your life?

12 While Loops in Karel
While Loops in Karel
Move to Wall
Follow The Yellow Ball Road
Lay Row of Tennis Balls
Big Tower
While Loop
Fencepost Problem
While loops will repeat a certain action as long as some condition is true. For example: *while the music is playing, I will dance*. In what other real life situations would a while loop come in handy?

What is the difference between an if statement and a while loop?

A common error in programming is the off-by-one error. In fact, one type of this error is so common that it's been nicknamed the "fencepost error." Imagine you're building a fence that is 25 feet long with the posts spaced 5 feet apart. How many posts will you need? The first answer that comes to most peoples' minds is 5, because 25 divided by 5 is 5. But this is off by one -- you'll actually need 6 posts!

13 Control Structures Example
Control Structures Example
Cleanup Karel
Random Hurdles
14 More Karel Examples and Testing
More Karel Examples and Testing
Quiz: Which Control Structure?
Move Tennis Ball Stack
Climbing Karel
15 How to Indent Your Code
How to Indent Your Code
Dance and Clean Karel
Diagonal
Staircase
Karel Exercises Badge
Indentation
Programming Style
Why is indenting important?

What is programming style?

16 Karel Challenges
Fetch
Racing Karel
Top Down Design
Break Down (Decompose)
Decomposition
Fencepost Problem
What is programming style?

What is a function?

What is top down design?

17 Tower Builder
Super Cleanup Karel
Fencepost Problem
Top Down Design
Break Down (Decompose)
Decomposition
A common error in programming is the off-by-one error. In fact, one type of this error is so common that it's been nicknamed the "fencepost error." Imagine you're building a fence that is 25 feet long with the posts spaced 5 feet apart. How many posts will you need? The first answer that comes to most peoples' minds is 5, because 25 divided by 5 is 5. But this is off by one -- you'll actually need 6 posts!

18 Double Tennis Balls
Karel Challenges Badge
Fencepost Problem
19 Hello World
Hello World
Hello World
Your Name and Hobby
What does it mean to "print" to the screen? What is the command used to print to the screen?

20 Variables
Variables
Basic Variables
Apples and Oranges
Variable
What is a variable?

What is the difference between declaring, assigning values to, and initializing variables?

21 User Input
User Input
Basic User Input
Grocery Store
Integer
What is user input? How can user input be used in a program?

22 Basic Math in JavaScript
Basic Math in JavaScript
Simple Calculator
Dollars to Pounds
Dividing Up Groups
T-Shirt Shop
Running Speed
Variable
Integer
Constant
How can variables be used to perform computation? Can you give an example of a simple math problem using variables instead of hard-coded values?

23 Using Graphics in JavaScript
Graphics
Graphics Hello World
Blue Circle
Red Rectangle
8 Ball
French Flag
Snowman
Canvas
Why would it be useful to store values in a variable? What advantages does this have over hard-coding values in a program?

How can variables be used with `getWidth()` and `getHeight()` to find the dimensions of the canvas?

24 Booleans
Booleans
First Boolean
Do You Have a Dog?
Boolean
Variable
What is a boolean? How is this different from other variables?

25 Logical Operators
Logical Operators
Light Switch
President
Wasting Time
Can You Graduate?
The Weekend
Boolean
Logical operator
What is a logical operator? What are some examples of logical operators?

What is a boolean? How is this different from other variables?

26 Comparison Operators
Comparison Operators
Walk into a Bar
Grade Range
Rolling Dice
All Star
Comparison operator
Logical operator
What is a comparison operator? How are comparison operators used in programs?

What is a logical operator? What are some examples of logical operators?

What is the difference between logical operators and comparison operators?

27 If Statements
If Statements
Negative Numbers
Great Names
Even and Odd
Secret Password
Teenagers
Stop Light
If Statement
If Else Statement
Comparison operator
What is the difference between an if statement and an if/else statement?

How does an if/else statement work if there are more than two conditions? For example, what can you do to check three conditions?

28 For Loops in JavaScript
Basic For Loop
For Loop
Chalkboard
Caterpillar
For Loop
Counter
When writing programs, we often have a set of commands that we want repeated a certain number of times. We can use a for loop to repeat these commands a set amount of times instead of having to write each command over and over. There are many times in real life that we essentially use loops to repeat some basic action over and over. Can you think of any?

What is a for loop?

How can variables be used with `getWidth()` and `getHeight()` to find the dimensions of the canvas?

29 General For Loop
Countdown
Count By Twos
Count By Sevens
Powers of Two
Counter
For Loop
When do we use a for loop?

What is a for loop?

30 For Loop Examples
For Loop Sum
Better Sum
Factorial
All Dice Values
For Loop
Counter
Nested for loop
When do we use a for loop?

How can variables be used to perform computation? Can you give an example of a simple math problem using variables instead of hard-coded values?

What are nested for loops? When would you use a nested for loop?

31 Random Numbers
Random Numbers
Rolling a Die
Flipping a Coin
Lots of Dice
Random Color Square
For Loop
Canvas
What is a for loop?

How can variables be used with `getWidth()` and `getHeight()` to find the dimensions of the canvas?

Why would it be useful to store values in a variable? What advantages does this have over hard-coding values in a program?

32 While Loops
While Loops
While Loop Countdown
Inventory
Fibonacci
While Loop
What is a while loop?

What is a loop?

How can variables be used to perform computation? Can you give an example of a simple math problem using variables instead of hard-coded values?

33 Loop and a Half
Loop and a Half
Adding Up Numbers
Snake Eyes
Better Password Prompt
Loop-and-a-half
While Loop
Sentinel
What is a loop-and-a-half? What are some benefits of using a loop-and-a-half?

What is the purpose of having a sentinel? When do we use a sentinel?

34 Functions and Parameters
Functions and Parameters 1
Double Number
Square
Triple
Argument
Function
Call a Function
What are parameters and how are they different from other variables?

How do parameters and functions work together?

35 Functions and Parameters 2
Sum Function
Area of Triangle
Height in Meters
Argument
Constant
How do parameters and functions work together?

What are parameters and how are they different from other variables?

36 Functions and Parameters 3
Draw Circles
Horizontal Lines
Graphics Stop Light
Pool Table
Argument
How do parameters and functions work together?

What are parameters and how are they different from other variables?

37 Functions and Return Values
Functions and Return Values 1
Double Number
Square with Return Values
Triple with Return Values
Return
Argument
What does it mean for a function to return a value?

38 Functions and Return Values 2
Return Values
Is It Even?
Max
Sentinel
Loop-and-a-half
Return
Argument
What is a loop-and-a-half? What are some benefits of using a loop-and-a-half?

What does it mean for a function to return a value?

39 Local Variables and Scope
Local Variables and Scope
Return Values
Local Variables
Local variable
Global variable
Scope
What is the difference between global and local variables? How does this relate to variable scope?

What does the "scope" mean when discussing variables in a program?

40 JavaScript Exercises Badge
Basic JavaScript and Graphics Challenges
Ghosts
Guessing Game
Canvas
Constant
Break Down (Decompose)
Top Down Design
Loop-and-a-half
Sentinel
While Loop
What is programming style?

What is top down design?

What is a loop-and-a-half? What are some benefits of using a loop-and-a-half?

How do we decide if we should use a while loop or a for loop?

41 Draw Something
JavaScript Challenges Badge
Canvas
42 Timers
Timers
Moving Ball
Magic 8 Ball
Crazy Ball
Timer
Global variable
Constant
What is animation?

What is a timer and how are timers used in a program?

What is the difference between a timer and a loop?

43 Random Circles
Example: Random Circles
Random Circles
Spinner Example
Growing Circle
Paint splatter
Constant
Global variable
Timer
What is a timer and how are timers used in a program?

What is the difference between a timer and a loop?

What is animation?

44 Random Ghosts
Example: Random Ghosts
Random Ghosts
Random Fireworks
Circle Wall
Global variable
Constant
Timer
What is a timer and how are timers used in a program?

What is the difference between a timer and a loop?

What is animation?

45 Bouncing Ball
Example: Bouncing Ball
Bouncing Ball
Hotspot Ball
Trail
Timer
Constant
Global variable
What is animation?

What is a timer and how are timers used in a program?

What is the difference between a timer and a loop?

46 Mouse Events: Mouse Clicked
Mouse Events: Mouse Clicked
Click For Circles
Click For Ghosts
Teleporting Ball
Pause
Event
Timer
What is an event?

What types of events are used in programs?

47 Mouse Events: Mouse Moved
Mouse Events: Mouse Moved
Simple Painting
Colorful Drag to Paint
Coordinates
Target
Event
Global variable
What types of events are used in programs?

What is an event?

48 Drawing Lines
Example: Drawing Lines
Drawing Lines
Leash
Event
What is an event?

What types of events are used in programs?

49 Key Events
Key Events
Keyboard Square
Basic Snake
Constant
Event
What is an event?

50 Crazy Ball Game
Crazy Ball Game 1
Crazy Ball Game 1
Crazy Ball Game 2
Crazy Ball Game 2
Drag and Drop
Animation Exercises Badge
Global variable
Event
What is an event?

What types of events are used in programs?

51 Breakout
Bricks
Constant
Break Down (Decompose)
Decomposition
Argument
Scope
What is the difference between a timer and a loop?

What are parameters and how are they different from other variables?

How do parameters and functions work together?

52 Ball and Paddle
Decomposition
Top Down Design
Event
Constant
Timer
What is animation?

What is an event?

What types of events are used in programs?

What is a timer and how are timers used in a program?

53 Breakout
Breakout Badge
Break Down (Decompose)
Constant
Argument
Timer
How do parameters and functions work together?

What is animation?

What is a timer and how are timers used in a program?

54 Intro to Lists/Arrays
Intro to Lists/Arrays
Making an Array
List of Places to Travel
List of Even Numbers
List
Array
What is a list, or array?

55 Indexing Into an Array
Indexing Into an Array
Array Indexing Practice
Top Websites
Array
List
What type of data can be contained in a list? Can lists only hold numbers?

What is a list, or array?

How do you index into an array?

56 Adding/Removing From an Array
Adding/Removing From an Array
Add/Remove From Array
Practice Push and Pop
Pop
Push
Array
How do you add and remove items from an array?

57 Array Length and Looping Through Arrays
Array Length and Looping Through Arrays
Print Shopping List
Sum Array
Product of List
Print Flight Itinerary
Array
Loop
List
Iterate
What does it mean to loop, or iterate, through an array?

58 Double List
Evens Only List
Reverse List
Array
Loop
Iterate
List
What does it mean to loop, or iterate, through an array?

59 Iterating Over an Array
Examples: Iterating Over an Array
Coin Flips
Many Crazy Balls
Coin Flip Fun: Number of Heads and Tails
Array
List
Iterate
What does it mean to loop, or iterate, through an array?

How do you add and remove items from an array?

60 Coin Flip Fun: Longest Streak of Heads
Changing Circles
Draw a Barcode
Array
List
Iterate
Argument
What does it mean to loop, or iterate, through an array?

How do you add and remove items from an array?

What is a timer and how are timers used in a program?

61 Finding an Element in a List
Finding an Element in a List
Array indexOf
Who is in Line?
Array
List
How do we find where an item is in an array?

62 Removing an Element From an Array
Removing an Element From an Array
Splice and Remove
Remove From Line
Array
List
How can you remove an item from the middle of an array?

What is the difference between "pop" and "splice" when working with arrays?

63 Intro to Objects/Maps
Intro to Objects/Maps
Phonebook
Basics of Objects
Basics of Objects
Object Literal Phonebook
Object Property Phonebook
Object
What is an object? How are objects different from arrays?

How is an object or dictionary different from an array?

What is a key, value pair?

64 Iterating Over an Object
Iterating Over An Object
Print Phonebook
When Do I Use an Object?
When Do I Use An Object?
Facebook Friend Lists
Object
Iterate
What is an object? How are objects different from arrays?

What's an example of an "object" or "dictionary" in real life, in which keys and values are paired together?

65 Intro to Sets
Intro to Sets
Basic Sets
Vowels
Set
Loop-and-a-half
What is a set?

What are the key similarities and differences between lists and sets?

66 Mutual Friends
Total Network of Friends
Set
What is a set?

What are the key similarities and differences between lists and sets?

67 Intro to Grids
Intro to Grids
Grid Basics
Looping Over a Grid
Looping Over a Grid
Print Grid
Summing Grid
Grid
What is a grid?

How is a grid different from an array?

68 Grid Example: Get a Row
Grid Example: Get a Row
Get a Row
Grid Diagonal
Data Structures Exercises Badge
Grid
What is a grid?

How is a grid different from an array?

69 Data Structures Challenges
Tic Tac Toe: Part 1
70 Tic Tac Toe: Part 2
Grid
What is a grid?

How is a grid different from an array?

71 Tic Tac Toe: Full Game
Grid
What is a grid?

How is a grid different from an array?

72 Evolution Simulation: Part 1
Array
List
Decomposition
Argument
What is a list, or array?

Why is decomposition important?

73 Evolution Simulation: Part 2
Evolution Simulation: Part 3
Array
List
Top Down Design
Timer
How do you approach breaking down a tough coding problem into smaller problems?

What is a list, or array?

How would you apply top down design to everyday activities? - Eating lunch - Waking up - Playing a sport

74 Evolution Simulation: Part 4
Evolution Simulation: Part 5
Array
Timer
List
Iterate
What is a list, or array?

75 Water Color Grid
Data Structures Challenges Badge
Grid
Event
What is a grid?

How is a grid different from an array?

What types of events are used in programs?

76 Game Design: Helicopter
Introduction to Helicopter
Basics
77 Moving the Helicopter
Moving the Helicopter
78 Adding Obstacles
Adding Obstacles
79 Smoother Movement
Smoother Movement
Improvements
Colliding with Walls
80 Wall Collisions
Colliding with Obstacles
81 Obstacle Collisions
Adding Terrain
82 Adding Terrain
Moving the Terrain
83 Moving the Terrain
Polish
Helicopter Image and Points!
84 Image and Points
Dust
85 Dust
More Obstacles
86 More Obstacles
Helicopter Extensions