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 |