# NM 3A: 3A-AP-18

## CodeHS Lessons

Create artifacts by using procedures within a program, combinations of data and procedures, or independent but interrelated programs.

 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Super Karel 2.8 Super Karel 2.9 For Loops 2.9 For Loops 2.10 If Statements 2.10 If Statements 2.11 If/Else Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.12 While Loops in Karel 2.13 Control Structures Example 2.13 Control Structures Example 2.14 Karel Algorithms 2.14 Karel Algorithms 2.15 How to Indent Your Code 2.15 How to Indent Your Code 2.16 Ultra Karel 2.16 Ultra Karel 2.17 Karel Challenges 2.17 Karel Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 17.6 Timers 17.7 Random Circles 17.8 Random Ghosts 17.9 Bouncing Ball 17.10 Mouse Events: Mouse Clicked 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 20.9 Data Structures Challenges 21.4 Basic Crypto Systems: Caesar Cipher 21.6 Basic Crypto Systems: Vigenere Cipher 21.9 Hash Function Development 21.10 Project: Classic Cipher Newscast 17.6 Timers 17.7 Random Circles 17.8 Random Ghosts 17.9 Bouncing Ball 17.10 Mouse Events: Mouse Clicked 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 20.9 Data Structures Challenges 21.4 Basic Crypto Systems: Caesar Cipher 21.6 Basic Crypto Systems: Vigenere Cipher 21.9 Hash Function Development 21.10 Project: Classic Cipher Newscast
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 1.10 Simulation 1.10 Simulation 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 5.6 Using Graphics in JavaScript 5.6 Using Graphics in JavaScript 9.6 Local Variables and Scope 9.6 Local Variables and Scope 9.7 Timers 9.7 Timers 9.8 Random Circles 9.8 Random Circles 9.9 Random Ghosts 9.9 Random Ghosts 9.10 Bouncing Ball 9.10 Bouncing Ball 9.11 Mouse Events: Mouse Clicked 9.11 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 1.10 Simulation 1.10 Simulation 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 6.5 Using Graphics in JavaScript 6.5 Using Graphics in JavaScript 11.6 Timers 11.6 Timers 11.7 Random Circles 11.7 Random Circles 11.8 Random Ghosts 11.8 Random Ghosts 11.9 Bouncing Ball 11.9 Bouncing Ball 11.10 Mouse Events: Mouse Clicked 11.10 Mouse Events: Mouse Clicked 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 19.9 Data Structures Challenges 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 19.9 Data Structures Challenges
 2.3 Basic Crypto Systems: Caesar Cipher 2.3 Basic Crypto Systems: Caesar Cipher 2.5 Basic Crypto Systems: Vigenere Cipher 2.5 Basic Crypto Systems: Vigenere Cipher 3.1 Introduction to Programming With Karel 3.1 Introduction to Programming With Karel 3.2 More Basic Karel 3.2 More Basic Karel 3.3 Karel Can't Turn Right 3.3 Karel Can't Turn Right 3.4 Functions in Karel 3.4 Functions in Karel 3.5 The Start Function 3.5 The Start Function 3.6 Top Down Design and Decomposition in Karel 3.6 Top Down Design and Decomposition in Karel 3.7 Commenting Your Code 3.7 Commenting Your Code 3.8 Abstraction 3.8 Abstraction 3.9 Super Karel 3.9 Super Karel 3.10 For Loops 3.10 For Loops 3.11 If Statements 3.11 If Statements 3.12 If/Else Statements 3.12 If/Else Statements 6.5 Using Graphics in JavaScript 6.5 Using Graphics in JavaScript 10.6 Timers 10.6 Timers 10.7 Random Circles 10.7 Random Circles 10.8 Random Ghosts 10.8 Random Ghosts 10.9 Bouncing Ball 10.9 Bouncing Ball 10.10 Mouse Events: Mouse Clicked 10.10 Mouse Events: Mouse Clicked 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 18.9 Data Structures Challenges 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 18.9 Data Structures Challenges
 3.1 Introduction to Programming With Karel 3.1 Introduction to Programming With Karel 3.2 More Basic Karel 3.2 More Basic Karel 3.3 Karel Can't Turn Right 3.3 Karel Can't Turn Right 3.4 Functions in Karel 3.4 Functions in Karel 3.5 The Start Function 3.5 The Start Function 3.6 Top Down Design and Decomposition in Karel 3.6 Top Down Design and Decomposition in Karel 3.7 Commenting Your Code 3.7 Commenting Your Code 3.8 Abstraction 3.8 Abstraction 3.9 Super Karel 3.9 Super Karel 3.10 For Loops 3.10 For Loops 3.11 If Statements 3.11 If Statements 3.12 If/Else Statements 3.12 If/Else Statements 6.5 Using Graphics in JavaScript 6.5 Using Graphics in JavaScript 12.6 Timers 12.7 Random Circles 12.8 Random Ghosts 12.9 Bouncing Ball 12.10 Mouse Events: Mouse Clicked 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 19.9 Data Structures Challenges 12.6 Timers 12.7 Random Circles 12.8 Random Ghosts 12.9 Bouncing Ball 12.10 Mouse Events: Mouse Clicked 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 19.9 Data Structures Challenges
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Abstraction 2.8 Abstraction 2.9 Super Karel 2.9 Super Karel 2.10 For Loops 2.10 For Loops 2.11 If Statements 2.11 If Statements 2.12 If/Else Statements 2.12 If/Else Statements 4.6 Using Graphics in JavaScript 4.6 Using Graphics in JavaScript 9.5 Using APIs
 3.10 Top Down Design 3.10 Top Down Design 3.19 Putting Together Control Structures 3.19 Putting Together Control Structures 4.1 Practice PT: Pair-Programming Paint! 4.1 Practice PT: Pair-Programming Paint!
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Super Karel 2.8 Super Karel 2.9 For Loops 2.9 For Loops 2.10 If Statements 2.10 If Statements 2.11 If/Else Statements 2.11 If/Else Statements 3.5 Using Graphics in JavaScript 3.5 Using Graphics in JavaScript 6.10 Top Down Design 6.19 Putting Together Control Structures 6.10 Top Down Design 6.19 Putting Together Control Structures
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Super Karel 2.8 Super Karel 2.9 For Loops 2.9 For Loops 2.10 If Statements 2.10 If Statements 2.11 If/Else Statements 2.11 If/Else Statements 3.10 Top Down Design 3.10 Top Down Design 3.19 Putting Together Control Structures 3.19 Putting Together Control Structures 6.5 Project 6.5 Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 6.1 Introduction to Programming With Karel 6.2 More Basic Karel 6.3 Karel Can't Turn Right 6.4 Functions in Karel 6.5 The Start Function 6.6 Top Down Design and Decomposition in Karel 6.7 Commenting Your Code 6.8 Super Karel 6.9 For Loops 6.10 If Statements 6.11 If/Else Statements 6.1 Introduction to Programming With Karel 6.2 More Basic Karel 6.3 Karel Can't Turn Right 6.4 Functions in Karel 6.5 The Start Function 6.6 Top Down Design and Decomposition in Karel 6.7 Commenting Your Code 6.8 Super Karel 6.9 For Loops 6.10 If Statements 6.11 If/Else Statements 9.5 Functions 10.1 micro:bit Challenges 10.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 11.1 Introduction to Programming With Karel 11.2 More Basic Karel 11.3 Karel Can't Turn Right 11.4 Functions in Karel 11.5 The Start Function 11.6 Top Down Design and Decomposition in Karel 11.7 Commenting Your Code 11.8 Super Karel 11.9 For Loops 11.10 If Statements 11.11 If/Else Statements 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 13.10 Top Down Design 13.19 Putting Together Control Structures 13.10 Top Down Design 13.19 Putting Together Control Structures
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Super Karel 2.8 Super Karel 2.9 For Loops 2.9 For Loops 2.10 If Statements 2.10 If Statements 2.11 If/Else Statements 2.11 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 10.1 Timers 10.1 Timers 10.2 Random Circles 10.2 Random Circles 10.3 Random Ghosts 10.3 Random Ghosts 10.4 Bouncing Ball 10.4 Bouncing Ball 10.5 Mouse Events: Mouse Clicked 10.5 Mouse Events: Mouse Clicked 10.6 Mouse Events: Mouse Moved 10.6 Mouse Events: Mouse Moved 10.7 Drawing Lines 10.7 Drawing Lines 10.8 Key Events 10.8 Key Events 10.9 Crazy Ball Game 10.9 Crazy Ball Game 11.1 Breakout 11.1 Breakout
 2.1 Introduction to Programming With Karel 2.1 Introduction to Programming With Karel 2.2 More Basic Karel 2.2 More Basic Karel 2.3 Karel Can't Turn Right 2.3 Karel Can't Turn Right 2.4 Functions in Karel 2.4 Functions in Karel 2.5 The Start Function 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.7 Commenting Your Code 2.8 Super Karel 2.8 Super Karel 2.9 For Loops 2.9 For Loops 2.10 If Statements 2.10 If Statements 2.11 If/Else Statements 2.11 If/Else Statements 5.5 Using Graphics in JavaScript 5.5 Using Graphics in JavaScript 9.6 Timers 9.6 Timers 9.7 Random Circles 9.7 Random Circles 9.8 Random Ghosts 9.8 Random Ghosts 9.9 Bouncing Ball 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.10 Mouse Events: Mouse Clicked 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 17.9 Data Structures Challenges
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 3.5 Using Graphics in JavaScript 3.5 Using Graphics in JavaScript 10.4 Functions 11.1 Timers 11.1 Timers 11.2 Random Circles 11.2 Random Circles 11.3 Random Ghosts 11.3 Random Ghosts 11.4 Bouncing Ball 11.4 Bouncing Ball 11.5 Mouse Events: Mouse Clicked 11.5 Mouse Events: Mouse Clicked 11.6 Mouse Events: Mouse Moved 11.6 Mouse Events: Mouse Moved 11.7 Drawing Lines 11.7 Drawing Lines 11.8 Key Events 11.8 Key Events 11.9 Crazy Ball Game 11.9 Crazy Ball Game 13.1 Breakout 13.1 Breakout 14.1 Arduino Challenges 14.4 Final Project 22.1 Game Design: Helicopter 21.1 Tic Tac Toe 22.1 Game Design: Helicopter 21.1 Tic Tac Toe
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 4.5 Using Graphics in JavaScript 4.5 Using Graphics in JavaScript 10.1 Timers 10.1 Timers 10.2 Random Circles 10.2 Random Circles 10.3 Random Ghosts 10.3 Random Ghosts 10.4 Bouncing Ball 10.4 Bouncing Ball 10.5 Mouse Events: Mouse Clicked 10.5 Mouse Events: Mouse Clicked 10.6 Mouse Events: Mouse Moved 10.6 Mouse Events: Mouse Moved 10.7 Drawing Lines 10.7 Drawing Lines 10.8 Key Events 10.8 Key Events 10.9 Crazy Ball Game 10.9 Crazy Ball Game 12.1 Breakout 12.1 Breakout 26.16 Data Structures Challenges 28.1 Game Design: Helicopter 27.1 Tic Tac Toe 25.1 Visualizing Music 22.1 Evolution Simulation 21.1 Conway's Game of Life 21.2 Connect Four 20.1 Fun Snake 20.2 Fun Graphics Challenges 26.16 Data Structures Challenges 28.1 Game Design: Helicopter 27.1 Tic Tac Toe 25.1 Visualizing Music 22.1 Evolution Simulation 21.1 Conway's Game of Life 21.2 Connect Four 20.1 Fun Snake 20.2 Fun Graphics Challenges
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 3.5 Using Graphics in JavaScript 3.5 Using Graphics in JavaScript 9.1 Timers 9.1 Timers 9.2 Random Circles 9.2 Random Circles 9.3 Random Ghosts 9.3 Random Ghosts 9.4 Bouncing Ball 9.4 Bouncing Ball 9.5 Mouse Events: Mouse Clicked 9.5 Mouse Events: Mouse Clicked 9.6 Mouse Events: Mouse Moved 9.6 Mouse Events: Mouse Moved 9.7 Drawing Lines 9.7 Drawing Lines 9.8 Key Events 9.8 Key Events 9.9 Crazy Ball Game 9.9 Crazy Ball Game 11.1 Breakout 11.1 Breakout 12.16 Data Structures Challenges 12.16 Data Structures Challenges 13.1 Tic Tac Toe 13.1 Tic Tac Toe 14.1 Game Design: Helicopter 14.1 Game Design: Helicopter 28.1 Visualizing Music 24.1 Evolution Simulation 23.1 Conway's Game of Life 23.2 Connect Four 22.1 Fun Snake 22.2 Fun Graphics Challenges 28.1 Visualizing Music 24.1 Evolution Simulation 23.1 Conway's Game of Life 23.2 Connect Four 22.1 Fun Snake 22.2 Fun Graphics Challenges
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 3.5 Using Graphics in JavaScript 3.5 Using Graphics in JavaScript 21.16 Data Structures Challenges 23.1 Game Design: Helicopter 22.1 Tic Tac Toe 20.1 Visualizing Music 16.1 Evolution Simulation 15.1 Conway's Game of Life 15.2 Connect Four 14.1 Fun Snake 14.2 Fun Graphics Challenges 21.16 Data Structures Challenges 23.1 Game Design: Helicopter 22.1 Tic Tac Toe 20.1 Visualizing Music 16.1 Evolution Simulation 15.1 Conway's Game of Life 15.2 Connect Four 14.1 Fun Snake 14.2 Fun Graphics Challenges
 1.1 Introduction to Programming With Karel 1.1 Introduction to Programming With Karel 1.2 More Basic Karel 1.2 More Basic Karel 1.3 Karel Can't Turn Right 1.3 Karel Can't Turn Right 1.4 Functions in Karel 1.4 Functions in Karel 1.5 The Start Function 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.7 Commenting Your Code 1.8 Super Karel 1.8 Super Karel 1.9 For Loops 1.9 For Loops 1.10 If Statements 1.10 If Statements 1.11 If/Else Statements 1.11 If/Else Statements 3.5 Using Graphics in JavaScript 3.5 Using Graphics in JavaScript 9.1 Timers 9.1 Timers 9.2 Random Circles 9.2 Random Circles 9.3 Random Ghosts 9.3 Random Ghosts 9.4 Bouncing Ball 9.4 Bouncing Ball 9.5 Mouse Events: Mouse Clicked 9.5 Mouse Events: Mouse Clicked 9.6 Mouse Events: Mouse Moved 9.6 Mouse Events: Mouse Moved 9.7 Drawing Lines 9.7 Drawing Lines 9.8 Key Events 9.8 Key Events 9.9 Crazy Ball Game 9.9 Crazy Ball Game 11.1 Breakout 11.1 Breakout 25.16 Data Structures Challenges 27.1 Game Design: Helicopter 26.1 Tic Tac Toe 24.1 Visualizing Music 21.1 Evolution Simulation 20.1 Conway's Game of Life 20.2 Connect Four 19.1 Fun Snake 19.2 Fun Graphics Challenges 25.16 Data Structures Challenges 27.1 Game Design: Helicopter 26.1 Tic Tac Toe 24.1 Visualizing Music 21.1 Evolution Simulation 20.1 Conway's Game of Life 20.2 Connect Four 19.1 Fun Snake 19.2 Fun Graphics Challenges
 2.5 Using Graphics in JavaScript 2.5 Using Graphics in JavaScript 7.4 Pixel Images 7.6 Pixel Colors! 11.1 Present a Data-Driven Insight
 3.5 Top Down Design 3.5 Top Down Design 7.5 Functions 8.1 Putting Together Control Structures 8.1 Putting Together Control Structures 9.1 micro:bit Challenges 9.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 1.19 Putting Together Control Structures 1.19 Putting Together Control Structures 7.4 Functions 12.1 Arduino Challenges 12.4 Final Project
 3.5 Top Down Design 3.5 Top Down Design 6.1 Putting Together Control Structures 6.1 Putting Together Control Structures
 3.5 Top Down Design 3.5 Top Down Design 6.1 Putting Together Control Structures 6.1 Putting Together Control Structures
 3.10 Top Down Design 3.10 Top Down Design 3.20 Putting Together Control Structures 3.20 Putting Together Control Structures
 2.10 Top Down Design 2.10 Top Down Design 2.19 Putting Together Control Structures 2.19 Putting Together Control Structures 16.1 Project: Who Said It? 16.1 Project: Who Said It?
 2.3 Basic Crypto Systems: Caesar Cipher 2.3 Basic Crypto Systems: Caesar Cipher 2.5 Basic Crypto Systems: Vigenere Cipher 2.5 Basic Crypto Systems: Vigenere Cipher 3.1 Project: Classic Cipher Newscast 3.1 Project: Classic Cipher Newscast 4.5 Hash Function Development 4.5 Hash Function Development
 4.3 Basic Crypto Systems: Caesar Cipher 4.3 Basic Crypto Systems: Caesar Cipher 4.5 Basic Crypto Systems: Vigenere Cipher 4.5 Basic Crypto Systems: Vigenere Cipher 4.7 Hash Function Development 4.7 Hash Function Development 5.1 Project: Classic Cipher Newscast 5.1 Project: Classic Cipher Newscast
 8.3 Basic Crypto Systems: Caesar Cipher 8.3 Basic Crypto Systems: Caesar Cipher 8.5 Basic Crypto Systems: Vigenere Cipher 8.5 Basic Crypto Systems: Vigenere Cipher
 4.3 Basic Crypto Systems: Caesar Cipher 4.3 Basic Crypto Systems: Caesar Cipher 4.5 Basic Crypto Systems: Vigenere Cipher 4.5 Basic Crypto Systems: Vigenere Cipher 5.5 Hash Function Development 5.5 Hash Function Development
 5.3 Basic Crypto Systems: Caesar Cipher 5.3 Basic Crypto Systems: Caesar Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 5.5 Basic Crypto Systems: Vigenere Cipher 6.1 Project: Classic Cipher Newscast 6.1 Project: Classic Cipher Newscast
 1.5 Hash Function Development 1.5 Hash Function Development
 8.4 Pixel Images 8.6 Pixel Colors! 8.7 Image Manipulation 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter! 14.1 Present a Data-Driven Insight 29.1 Project: Who Said It? 29.1 Project: Who Said It?
 6.4 Using Methods to Update String States 6.4 Using Methods to Update String States
 6.4 Using Methods to Update String States 6.4 Using Methods to Update String States
 3.3 Interactive Resume Development 4.6 Challenge: Create a Survey 4.9 Challenge: Collecting User Clicks 4.11 Using APIs
 8.4 Pixel Images 8.6 Pixel Colors! 8.7 Image Manipulation 12.1 Practice PT: Create an Image Filter! 17.1 Present a Data-Driven Insight 31.1 Practice PT: Steganography
 8.4 Pixel Images 8.6 Pixel Colors! 8.7 Image Manipulation 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter! 14.1 Present a Data-Driven Insight
 8.4 Pixel Images 8.6 Pixel Colors! 8.7 Image Manipulation 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter! 14.1 Present a Data-Driven Insight
 5.4 Pixel Images
 4.5 Pixel Images 4.6 Pixel Colors! 8.4 Calling a Void Method 8.6 Calling a Non-void Method 11.4 Accessor Methods 11.5 Mutator Methods 11.6 Writing Methods
 4.5 Pixel Images 4.6 Pixel Colors! 8.4 Calling a Void Method 8.6 Calling a Non-void Method 11.4 Accessor Methods 11.5 Mutator Methods 11.6 Writing Methods
 7.5 Functions 10.1 micro:bit Challenges 10.4 Final Project
 2.5 Functions 3.1 micro:bit Challenges 3.4 Final Project
 2.4 Functions 3.1 Arduino Challenges 3.4 Final Project
 2.4 Calling a Void Method 2.6 Calling a Non-void Method 5.4 Accessor Methods 5.5 Mutator Methods 5.6 Writing Methods