| 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 | 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 |