# HI 3B: 3B-AP-14

## CodeHS Lessons

Construct solutions to problems using student-created components, such as procedures, modules and/or objects.

 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 5.7 Image Manipulation 5.7 Image Manipulation 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 17.1 Functions and Parameters 1 17.2 Functions and Parameters 2 17.3 Functions and Parameters 3 17.4 Functions and Return Values 1 17.5 Functions and Return Values 2 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 17.13 Array Length and Looping Through Arrays 17.14 Iterating Over an Array 19.2 Finding an Element in a List 19.3 Removing an Element From an Array 20.1 Intro to Objects/Maps 20.2 Basics of Objects 20.3 Iterating Over an Object 20.4 When Do I Use an Object? 20.5 Intro to Sets 20.6 Intro to Grids 20.7 Looping Over a Grid 20.8 Grid Example: Get a Row 20.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 18.1 Functions and Parameters Practice 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.1 Functions and Parameters 1 17.2 Functions and Parameters 2 17.3 Functions and Parameters 3 17.4 Functions and Return Values 1 17.5 Functions and Return Values 2 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 17.13 Array Length and Looping Through Arrays 17.14 Iterating Over an Array 19.2 Finding an Element in a List 19.3 Removing an Element From an Array 20.1 Intro to Objects/Maps 20.2 Basics of Objects 20.3 Iterating Over an Object 20.4 When Do I Use an Object? 20.5 Intro to Sets 20.6 Intro to Grids 20.7 Looping Over a Grid 20.8 Grid Example: Get a Row 20.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 18.1 Functions and Parameters Practice 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.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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 9.13 Array Length and Looping Through Arrays 9.13 Array Length and Looping Through Arrays 9.14 Iterating Over an Array 9.14 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 5.1 What is Code 5.1 What is Code 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 9.6 Local Variables and Scope 9.6 Local Variables and Scope 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 9.14 Array Length and Looping Through Arrays 9.14 Array Length and Looping Through Arrays 9.15 Iterating Over an Array 9.15 Iterating Over an Array 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice 15.1 Mouse Events: Mouse Moved 15.2 Drawing Lines 15.3 Key Events 15.4 Crazy Ball Game 16.2 Finding an Element in a List 16.3 Removing an Element From an Array 17.1 Intro to Objects/Maps 17.2 Basics of Objects 17.3 Iterating Over an Object 17.4 When Do I Use an Object? 17.5 Intro to Sets 17.6 Intro to Grids 17.7 Looping Over a Grid 17.8 Grid Example: Get a Row 17.9 Data Structures Challenges 12.1 Extra Karel Practice 13.1 Extra Karel Puzzles 14.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 11.1 Functions and Parameters 1 11.1 Functions and Parameters 1 11.2 Functions and Parameters 2 11.2 Functions and Parameters 2 11.3 Functions and Parameters 3 11.3 Functions and Parameters 3 11.4 Functions and Return Values 1 11.4 Functions and Return Values 1 11.5 Functions and Return Values 2 11.5 Functions and Return Values 2 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 11.13 Array Length and Looping Through Arrays 11.13 Array Length and Looping Through Arrays 11.14 Iterating Over an Array 11.14 Iterating Over an Array 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 18.2 Finding an Element in a List 18.3 Removing an Element From an Array 19.1 Intro to Objects/Maps 19.2 Basics of Objects 19.3 Iterating Over an Object 19.4 When Do I Use an Object? 19.5 Intro to Sets 19.6 Intro to Grids 19.7 Looping Over a Grid 19.8 Grid Example: Get a Row 19.9 Data Structures Challenges 14.1 Extra Karel Practice 15.1 Extra Karel Puzzles 16.1 Functions and Parameters Practice 17.1 Mouse Events: Mouse Moved 17.2 Drawing Lines 17.3 Key Events 17.4 Crazy Ball Game 18.2 Finding an Element in a List 18.3 Removing an Element From an Array 19.1 Intro to Objects/Maps 19.2 Basics of Objects 19.3 Iterating Over an Object 19.4 When Do I Use an Object? 19.5 Intro to Sets 19.6 Intro to Grids 19.7 Looping Over a Grid 19.8 Grid Example: Get a Row 19.9 Data Structures Challenges 14.1 Extra Karel Practice 15.1 Extra Karel Puzzles 16.1 Functions and Parameters Practice
 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.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 3.13 While Loops in Karel 3.13 While Loops in Karel 3.14 Control Structures Example 3.14 Control Structures Example 3.15 More Karel Examples and Testing 3.15 More Karel Examples and Testing 3.16 How to Indent Your Code 3.16 How to Indent Your Code 4.2 Challenge Problems 4.2 Challenge Problems 10.1 Functions and Parameters 1 10.1 Functions and Parameters 1 10.2 Functions and Parameters 2 10.2 Functions and Parameters 2 10.3 Functions and Parameters 3 10.3 Functions and Parameters 3 10.4 Functions and Return Values 1 10.4 Functions and Return Values 1 10.5 Functions and Return Values 2 10.5 Functions and Return Values 2 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 10.13 Array Length and Looping Through Arrays 10.13 Array Length and Looping Through Arrays 10.14 Iterating Over an Array 10.14 Iterating Over an Array 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 17.2 Finding an Element in a List 17.3 Removing an Element From an Array 18.1 Intro to Objects/Maps 18.2 Basics of Objects 18.3 Iterating Over an Object 18.4 When Do I Use an Object? 18.5 Intro to Sets 18.6 Intro to Grids 18.7 Looping Over a Grid 18.8 Grid Example: Get a Row 18.9 Data Structures Challenges 13.1 Extra Karel Practice 14.1 Extra Karel Puzzles 15.1 Functions and Parameters Practice 16.1 Mouse Events: Mouse Moved 16.2 Drawing Lines 16.3 Key Events 16.4 Crazy Ball Game 17.2 Finding an Element in a List 17.3 Removing an Element From an Array 18.1 Intro to Objects/Maps 18.2 Basics of Objects 18.3 Iterating Over an Object 18.4 When Do I Use an Object? 18.5 Intro to Sets 18.6 Intro to Grids 18.7 Looping Over a Grid 18.8 Grid Example: Get a Row 18.9 Data Structures Challenges 13.1 Extra Karel Practice 14.1 Extra Karel Puzzles 15.1 Functions and Parameters Practice
 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 3.13 While Loops in Karel 3.13 While Loops in Karel 3.14 Control Structures Example 3.14 Control Structures Example 3.15 More Karel Examples and Testing 3.15 More Karel Examples and Testing 3.16 How to Indent Your Code 3.16 How to Indent Your Code 4.2 Challenge Problems 4.2 Challenge Problems 12.1 Functions and Parameters 1 12.2 Functions and Parameters 2 12.3 Functions and Parameters 3 12.4 Functions and Return Values 1 12.5 Functions and Return Values 2 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 12.13 Array Length and Looping Through Arrays 12.14 Iterating Over an Array 18.2 Finding an Element in a List 18.3 Removing an Element From an Array 19.1 Intro to Objects/Maps 19.2 Basics of Objects 19.3 Iterating Over an Object 19.4 When Do I Use an Object? 19.5 Intro to Sets 19.6 Intro to Grids 19.7 Looping Over a Grid 19.8 Grid Example: Get a Row 19.9 Data Structures Challenges 14.1 Extra Karel Practice 15.1 Extra Karel Puzzles 16.1 Functions and Parameters Practice 12.1 Functions and Parameters 1 12.2 Functions and Parameters 2 12.3 Functions and Parameters 3 12.4 Functions and Return Values 1 12.5 Functions and Return Values 2 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 12.13 Array Length and Looping Through Arrays 12.14 Iterating Over an Array 18.2 Finding an Element in a List 18.3 Removing an Element From an Array 19.1 Intro to Objects/Maps 19.2 Basics of Objects 19.3 Iterating Over an Object 19.4 When Do I Use an Object? 19.5 Intro to Sets 19.6 Intro to Grids 19.7 Looping Over a Grid 19.8 Grid Example: Get a Row 19.9 Data Structures Challenges 14.1 Extra Karel Practice 15.1 Extra Karel Puzzles 16.1 Functions and Parameters Practice
 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 2.13 While Loops in Karel 2.13 While Loops in Karel 2.14 Control Structures Example 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 2.16 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 11.1 Extra Karel Practice 12.1 Extra Karel Puzzles 11.1 Extra Karel Practice 12.1 Extra Karel Puzzles
 3.10 Top Down Design 3.10 Top Down Design 4.1 Practice PT: Pair-Programming Paint! 4.1 Practice PT: Pair-Programming Paint!
 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 More Karel Examples and Testing 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 2.15 How to Indent Your Code 2.16 Karel Challenges 2.16 Karel Challenges 11.7 Image Manipulation 4.1 Extra Karel Practice 5.1 Extra Karel Puzzles 6.10 Top Down Design 11.7 Image Manipulation 4.1 Extra Karel Practice 5.1 Extra Karel Puzzles 6.10 Top Down Design
 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 1.12 While Loops in Karel 1.12 While Loops in Karel 1.13 Control Structures Example 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 1.15 How to Indent Your Code 1.16 Karel Challenges 1.16 Karel Challenges
 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 More Karel Examples and Testing 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 2.15 How to Indent Your Code 2.16 Karel Challenges 2.16 Karel Challenges 3.10 Top Down Design 3.10 Top Down Design 11.7 Image Manipulation 4.1 Extra Karel Practice 5.1 Extra Karel Puzzles 11.7 Image Manipulation 4.1 Extra Karel Practice 5.1 Extra Karel Puzzles
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 6.13 Control Structures Example 6.14 More Karel Examples and Testing 6.15 How to Indent Your Code 6.16 Karel Challenges 7.1 Extra Karel Puzzles 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.12 While Loops in Karel 6.13 Control Structures Example 6.14 More Karel Examples and Testing 6.15 How to Indent Your Code 6.16 Karel Challenges 7.1 Extra Karel Puzzles 9.5 Functions 10.1 micro:bit Challenges 10.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 1.10 Top Down Design 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.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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 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.12 While Loops in Karel 11.13 Control Structures Example 11.14 More Karel Examples and Testing 11.15 How to Indent Your Code 11.16 Karel Challenges 12.1 Extra Karel Puzzles 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 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 1.12 While Loops in Karel 1.12 While Loops in Karel 1.13 Control Structures Example 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 1.15 How to Indent Your Code 1.16 Karel Challenges 1.16 Karel Challenges 6.7 Image Manipulation 6.7 Image Manipulation 11.1 Extra Karel Practice 12.1 Extra Karel Puzzles 13.10 Top Down Design 11.1 Extra Karel Practice 12.1 Extra Karel Puzzles 13.10 Top Down Design
 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 More Karel Examples and Testing 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 2.15 How to Indent Your Code 3.2 Challenge Problems 3.2 Challenge Problems 9.1 Functions and Parameters 1 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.5 Functions and Return Values 2 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 12.4 Array Length and Looping Through Arrays 12.4 Array Length and Looping Through Arrays 12.5 Iterating Over an Array 12.5 Iterating Over an Array 12.6 Finding an Element in a List 12.6 Finding an Element in a List 12.7 Removing an Element From an Array 12.7 Removing an Element From an Array
 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