# CSTA 3A: 3A-AP-17

## CodeHS Lessons

Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects.

 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Super Karel 2.9 For Loops 2.10 If Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.13 Control Structures Example 2.14 Karel Algorithms 2.15 How to Indent Your Code 2.16 Ultra Karel 2.17 Karel Challenges 6.2 Hello World 12.1 Extra Karel Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.8 Random Numbers 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 14.1 Booleans 14.2 Logical Operators 14.3 Comparison Operators 14.4 If Statements 14.5 For Loops in JavaScript 14.6 General For Loops 14.7 For Loop Practice 14.8 Random Numbers 14.9 While Loops 14.10 Loop and a Half 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.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 17.11 Intro to Lists/Arrays 19.1 Indexing Into an Array 17.12 Adding/Removing From an Array 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 18.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.8 Random Numbers 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 1.10 Simulation 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 5.1 What is Code 5.2 Hello World 5.3 Variables 5.4 User Input 5.5 Basic Math in JavaScript 5.6 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.8 Random Numbers 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Local Variables and Scope 9.7 Timers 9.8 Random Circles 9.9 Random Ghosts 9.10 Bouncing Ball 9.11 Mouse Events: Mouse Clicked 9.12 Intro to Lists/Arrays 9.13 Adding/Removing From an Array 9.14 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 1.10 Simulation 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 6.1 Hello World 6.2 Variables 6.3 User Input 6.4 Basic Math in JavaScript 6.5 Using Graphics in JavaScript 9.1 Booleans 9.2 Logical Operators 9.3 Comparison Operators 9.4 If Statements 9.5 For Loops in JavaScript 9.6 General For Loops 9.7 For Loop Practice 9.8 Random Numbers 9.9 While Loops 9.10 Loop and a Half 11.1 Functions and Parameters 1 11.2 Functions and Parameters 2 11.3 Functions and Parameters 3 11.4 Functions and Return Values 1 11.5 Functions and Return Values 2 11.6 Timers 11.7 Random Circles 11.8 Random Ghosts 11.9 Bouncing Ball 11.10 Mouse Events: Mouse Clicked 11.11 Intro to Lists/Arrays 11.12 Adding/Removing From an Array 11.13 Array Length and Looping Through Arrays 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.1 Indexing Into 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 16.1 Functions and Parameters Practice
 3.4 Functions in Karel 3.5 The Start Function 3.6 Top Down Design and Decomposition in Karel 3.7 Commenting Your Code 3.8 Abstraction 3.9 Super Karel 3.10 For Loops 3.11 If Statements 3.12 If/Else Statements 3.13 While Loops in Karel 3.14 Control Structures Example 3.15 More Karel Examples and Testing 3.16 How to Indent Your Code 4.2 Challenge Problems 6.1 Hello World 6.2 Variables 6.3 User Input 6.4 Basic Math in JavaScript 6.5 Using Graphics in JavaScript 8.1 Booleans 8.2 Logical Operators 8.3 Comparison Operators 8.4 If Statements 8.5 For Loops in JavaScript 8.6 General For Loops 8.7 For Loop Practice 8.8 Random Numbers 8.9 While Loops 8.10 Loop and a Half 10.1 Functions and Parameters 1 10.2 Functions and Parameters 2 10.3 Functions and Parameters 3 10.4 Functions and Return Values 1 10.5 Functions and Return Values 2 10.6 Timers 10.7 Random Circles 10.8 Random Ghosts 10.9 Bouncing Ball 10.10 Mouse Events: Mouse Clicked 10.11 Intro to Lists/Arrays 10.12 Adding/Removing From an Array 10.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 15.1 Functions and Parameters Practice
 3.4 Functions in Karel 3.5 The Start Function 3.6 Top Down Design and Decomposition in Karel 3.7 Commenting Your Code 3.8 Abstraction 3.9 Super Karel 3.10 For Loops 3.11 If Statements 3.12 If/Else Statements 3.13 While Loops in Karel 3.14 Control Structures Example 3.15 More Karel Examples and Testing 3.16 How to Indent Your Code 4.2 Challenge Problems 6.1 Hello World 6.2 Variables 6.3 User Input 6.4 Basic Math in JavaScript 6.5 Using Graphics in JavaScript 10.1 Booleans 10.2 Logical Operators 10.3 Comparison Operators 10.4 If Statements 10.5 For Loops in JavaScript 10.6 General For Loops 10.7 For Loop Practice 10.8 Random Numbers 10.9 While Loops 10.10 Loop and a Half 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.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 12.11 Intro to Lists/Arrays 18.1 Indexing Into an Array 12.12 Adding/Removing From an Array 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 16.1 Functions and Parameters Practice
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Abstraction 2.9 Super Karel 2.10 For Loops 2.11 If Statements 2.12 If/Else Statements 2.13 While Loops in Karel 2.14 Control Structures Example 2.15 More Karel Examples and Testing 2.16 How to Indent Your Code 3.2 Challenge Problems 4.2 Hello World 4.3 Variables 4.4 User Input 4.5 Basic Math in JavaScript 4.6 Using Graphics in JavaScript 13.1 Booleans 13.2 Logical Operators 13.3 Comparison Operators 13.4 If Statements 13.5 For Loops in JavaScript 13.6 General For Loops 13.7 For Loop Practice 13.8 Random Numbers 13.9 While Loops 13.10 Loop and a Half 11.1 Extra Karel Practice
 3.10 Top Down Design 4.1 Practice PT: Pair-Programming Paint!
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Super Karel 2.9 For Loops 2.10 If Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.13 Control Structures Example 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 3.1 Hello World 3.2 Variables 3.3 User Input 3.4 Basic Math in JavaScript 3.5 Using Graphics in JavaScript 4.1 Extra Karel Practice 6.10 Top Down Design
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 3.4 Functions in Karel 3.5 The Start Function 3.6 Top Down Design and Decomposition in Karel 3.17 Karel Challenges 3.18 Final Project
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Super Karel 2.9 For Loops 2.10 If Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.13 Control Structures Example 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 3.10 Top Down Design 4.1 Extra Karel Practice
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 9.5 Functions 10.1 micro:bit Challenges 10.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 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 14.5 Functions 15.1 micro:bit Challenges 15.4 Final Project
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 11.1 Extra Karel Practice 13.10 Top Down Design
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Super Karel 2.9 For Loops 2.10 If Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.13 Control Structures Example 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.8 Random Numbers 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Local Variables and Scope 10.1 Timers 10.2 Random Circles 10.3 Random Ghosts 10.4 Bouncing Ball 10.5 Mouse Events: Mouse Clicked 10.6 Mouse Events: Mouse Moved 10.7 Drawing Lines 10.8 Key Events 10.9 Crazy Ball Game 11.1 Breakout 12.1 Intro to Lists/Arrays 12.2 Indexing Into an Array 12.3 Adding/Removing From an Array 12.4 Array Length and Looping Through Arrays 12.5 Iterating Over an Array 12.6 Finding an Element in a List 12.7 Removing an Element From an Array
 2.4 Functions in Karel 2.5 The Start Function 2.6 Top Down Design and Decomposition in Karel 2.7 Commenting Your Code 2.8 Super Karel 2.9 For Loops 2.10 If Statements 2.11 If/Else Statements 2.12 While Loops in Karel 2.13 Control Structures Example 2.14 More Karel Examples and Testing 2.15 How to Indent Your Code 3.2 Challenge Problems 5.1 Hello World 5.2 Variables 5.3 User Input 5.4 Basic Math in JavaScript 5.5 Using Graphics in JavaScript 7.1 Booleans 7.2 Logical Operators 7.3 Comparison Operators 7.4 If Statements 7.5 For Loops in JavaScript 7.6 General For Loops 7.7 For Loop Practice 7.8 Random Numbers 7.9 While Loops 7.10 Loop and a Half 9.1 Functions and Parameters 1 9.2 Functions and Parameters 2 9.3 Functions and Parameters 3 9.4 Functions and Return Values 1 9.5 Functions and Return Values 2 9.6 Timers 9.7 Random Circles 9.8 Random Ghosts 9.9 Bouncing Ball 9.10 Mouse Events: Mouse Clicked 9.11 Intro to Lists/Arrays 9.12 Adding/Removing From an Array 9.13 Array Length and Looping Through Arrays 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.1 Indexing Into an Array 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 14.1 Functions and Parameters Practice
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 2.1 Challenge Problems 3.1 Hello World 3.2 Variables 3.3 User Input 3.4 Basic Math in JavaScript 3.5 Using Graphics in JavaScript 5.3 Comments & Pseudocode 6.1 Booleans 6.2 Logical Operators 6.3 Comparison Operators 6.4 If Statements 6.5 For Loops in JavaScript 6.6 General For Loops 6.7 For Loop Practice 6.8 Random Numbers 6.9 While Loops 6.10 Loop and a Half 8.1 Functions and Parameters 1 8.2 Functions and Parameters 2 8.3 Functions and Parameters 3 8.4 Functions and Return Values 1 8.5 Functions and Return Values 2 8.6 Local Variables and Scope 9.1 Functions Challenges 10.4 Functions 11.1 Timers 11.2 Random Circles 11.3 Random Ghosts 11.4 Bouncing Ball 11.5 Mouse Events: Mouse Clicked 11.6 Mouse Events: Mouse Moved 11.7 Drawing Lines 11.8 Key Events 11.9 Crazy Ball Game 13.1 Breakout 14.1 Arduino Challenges 14.4 Final Project 22.1 Game Design: Helicopter 18.1 Extra Karel Practice 21.1 Tic Tac Toe 20.1 Functions and Parameters Practice
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 2.1 Challenge Problems 4.1 Hello World 4.2 Variables 4.3 User Input 4.4 Basic Math in JavaScript 4.5 Using Graphics in JavaScript 6.1 Booleans 6.2 Logical Operators 6.3 Comparison Operators 6.4 If Statements 6.5 For Loops in JavaScript 6.6 General For Loops 6.7 For Loop Practice 6.8 Random Numbers 6.9 While Loops 6.10 Loop and a Half 8.1 Functions and Parameters 1 8.2 Functions and Parameters 2 8.3 Functions and Parameters 3 8.4 Functions and Return Values 1 8.5 Functions and Return Values 2 8.6 Local Variables and Scope 9.1 Functions Challenges 10.1 Timers 10.2 Random Circles 10.3 Random Ghosts 10.4 Bouncing Ball 10.5 Mouse Events: Mouse Clicked 10.6 Mouse Events: Mouse Moved 10.7 Drawing Lines 10.8 Key Events 10.9 Crazy Ball Game 12.1 Breakout 26.1 Intro to Lists/Arrays 26.2 Indexing Into an Array 26.3 Adding/Removing From an Array 26.4 Array Length and Looping Through Arrays 26.5 Iterating Over an Array 26.6 Finding an Element in a List 26.7 Removing an Element From an Array 26.8 Intro to Objects/Maps 26.9 Basics of Objects 26.10 Iterating Over an Object 26.11 When Do I Use an Object? 26.12 Intro to Sets 26.13 Intro to Grids 26.14 Looping Over a Grid 26.15 Grid Example: Get a Row 26.16 Data Structures Challenges 28.1 Game Design: Helicopter 16.1 Extra Karel Practice 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 19.1 Prime Numbers 18.1 Functions and Parameters Practice
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 2.1 Challenge Problems 3.1 Hello World 3.2 Variables 3.3 User Input 3.4 Basic Math in JavaScript 3.5 Using Graphics in JavaScript 5.1 Booleans 5.2 Logical Operators 5.3 Comparison Operators 5.4 If Statements 5.5 For Loops in JavaScript 5.6 General For Loops 5.7 For Loop Practice 5.8 Random Numbers 5.9 While Loops 5.10 Loop and a Half 7.1 Functions and Parameters 1 7.2 Functions and Parameters 2 7.3 Functions and Parameters 3 7.4 Functions and Return Values 1 7.5 Functions and Return Values 2 7.6 Local Variables and Scope 8.1 Functions Challenges 9.1 Timers 9.2 Random Circles 9.3 Random Ghosts 9.4 Bouncing Ball 9.5 Mouse Events: Mouse Clicked 9.6 Mouse Events: Mouse Moved 9.7 Drawing Lines 9.8 Key Events 9.9 Crazy Ball Game 11.1 Breakout 12.1 Intro to Lists/Arrays 12.2 Indexing Into an Array 12.3 Adding/Removing From an Array 12.4 Array Length and Looping Through Arrays 12.5 Iterating Over an Array 12.6 Finding an Element in a List 12.7 Removing an Element From an Array 12.8 Intro to Objects/Maps 12.9 Basics of Objects 12.10 Iterating Over an Object 12.11 When Do I Use an Object? 12.12 Intro to Sets 12.13 Intro to Grids 12.14 Looping Over a Grid 12.15 Grid Example: Get a Row 12.16 Data Structures Challenges 13.1 Tic Tac Toe 14.1 Game Design: Helicopter 18.1 Extra Karel Practice 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 21.1 Prime Numbers 20.1 Functions and Parameters Practice
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 2.1 Challenge Problems 3.1 Hello World 3.2 Variables 3.3 User Input 3.4 Basic Math in JavaScript 3.5 Using Graphics in JavaScript 5.1 Booleans 5.2 Logical Operators 5.3 Comparison Operators 5.4 If Statements 5.5 For Loops in JavaScript 5.6 General For Loops 5.7 For Loop Practice 5.8 Random Numbers 5.9 While Loops 5.10 Loop and a Half 7.1 Functions and Parameters 1 7.2 Functions and Parameters 2 7.3 Functions and Parameters 3 7.4 Functions and Return Values 1 7.5 Functions and Return Values 2 7.6 Local Variables and Scope 9.1 Functions Challenges 9.1 Functions Challenges 21.1 Intro to Lists/Arrays 21.2 Indexing Into an Array 21.3 Adding/Removing From an Array 21.4 Array Length and Looping Through Arrays 21.5 Iterating Over an Array 21.6 Finding an Element in a List 21.7 Removing an Element From an Array 21.8 Intro to Objects/Maps 21.9 Basics of Objects 21.10 Iterating Over an Object 21.11 When Do I Use an Object? 21.12 Intro to Sets 21.13 Intro to Grids 21.14 Looping Over a Grid 21.15 Grid Example: Get a Row 21.16 Data Structures Challenges 23.1 Game Design: Helicopter 10.1 Extra Karel Practice 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 13.1 Prime Numbers 12.1 Functions and Parameters Practice
 1.4 Functions in Karel 1.5 The Start Function 1.6 Top Down Design and Decomposition in Karel 1.7 Commenting Your Code 1.8 Super Karel 1.9 For Loops 1.10 If Statements 1.11 If/Else Statements 1.12 While Loops in Karel 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 2.1 Challenge Problems 3.1 Hello World 3.2 Variables 3.3 User Input 3.4 Basic Math in JavaScript 3.5 Using Graphics in JavaScript 5.1 Booleans 5.2 Logical Operators 5.3 Comparison Operators 5.4 If Statements 5.5 For Loops in JavaScript 5.6 General For Loops 5.7 For Loop Practice 5.8 Random Numbers 5.9 While Loops 5.10 Loop and a Half 7.1 Functions and Parameters 1 7.2 Functions and Parameters 2 7.3 Functions and Parameters 3 7.4 Functions and Return Values 1 7.5 Functions and Return Values 2 7.6 Local Variables and Scope 8.1 Functions Challenges 9.1 Timers 9.2 Random Circles 9.3 Random Ghosts 9.4 Bouncing Ball 9.5 Mouse Events: Mouse Clicked 9.6 Mouse Events: Mouse Moved 9.7 Drawing Lines 9.8 Key Events 9.9 Crazy Ball Game 11.1 Breakout 25.1 Intro to Lists/Arrays 25.2 Indexing Into an Array 25.3 Adding/Removing From an Array 25.4 Array Length and Looping Through Arrays 25.5 Iterating Over an Array 25.6 Finding an Element in a List 25.7 Removing an Element From an Array 25.8 Intro to Objects/Maps 25.9 Basics of Objects 25.10 Iterating Over an Object 25.11 When Do I Use an Object? 25.12 Intro to Sets 25.13 Intro to Grids 25.14 Looping Over a Grid 25.15 Grid Example: Get a Row 25.16 Data Structures Challenges 27.1 Game Design: Helicopter 15.1 Extra Karel Practice 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 18.1 Prime Numbers 17.1 Functions and Parameters Practice
 21.1 Challenge Problems 22.1 Booleans 22.2 Logical Operators 22.3 Comparison Operators 22.4 If Statements 22.5 For Loops in JavaScript 22.6 General For Loops 22.7 For Loop Practice 22.8 Random Numbers 22.9 While Loops 22.10 Loop and a Half
 1.6 Functions in HTML 4.4 JavaScript Objects 4.10 For/In Loops 9.1 Hello World 9.2 Variables 9.3 User Input 9.4 Basic Math in JavaScript 9.5 Booleans 9.6 Logical Operators 9.7 Comparison Operators 9.8 If Statements 9.9 For Loops in JavaScript 9.10 For Loop Practice 9.11 Random Numbers 9.12 While Loops 9.13 Loop and a Half 9.14 Functions and Parameters 1 9.15 Functions and Parameters 2 9.16 Functions and Return Values 1 9.17 Functions and Return Values 2 9.18 Local Variables and Scope 9.19 Intro to Lists/Arrays 9.20 Indexing Into an Array 9.21 Adding/Removing From an Array 9.22 Array Length and Looping Through Arrays
 1.4 Functions in Karel 1.6 Top Down Design and Decomposition in Karel 2.1 Hello World 2.2 Variables 2.3 User Input 2.4 Basic Math in JavaScript 2.5 Using Graphics in JavaScript 4.1 Functions and Parameters 1 4.2 Functions and Parameters 2 4.3 Functions and Parameters 3 4.4 Functions and Return Values 1 4.5 Functions and Return Values 2 4.7 JavaScript vs Karel 4.8 Basic JavaScript and Graphics Challenges 5.1 Project: Tell a Story
 3.13 Control Structures Example 3.14 More Karel Examples and Testing 3.15 How to Indent Your Code 3.16 Karel Challenges 4.9 Comparison Operators 4.10 For Loops 4.11 While Loops 4.12 If Statements 4.13 Loop-and-a-Half 4.14 Short-Circuit Evaluation 4.15 De Morgan's Laws 4.16 Strings 5.1 Java Methods 5.2 Methods and Parameters 5.3 Methods and Return Values 5.4 Javadocs and More Methods 5.5 Strings Methods 5.6 Strings and Characters 5.7 Exceptions 5.8 String Processing 6.1 Introduction to Classes and Objects 6.2 Classes vs. Objects 6.3 Using a Class as a Client 6.4 Writing Classes 6.5 Writing Classes and Instance Methods 6.6 Getter and Setter Methods 6.7 Class Methods and Class Variables 6.9 Method Overloading 6.10 Local Variables and Scope 6.11 Key Terms for Classes 6.12 Objects vs Primitives 6.13 Inheritance 6.14 Class Design and Abstract Classes 6.15 Polymorphism 6.17 Interfaces 7.1 What are Data Structures? 7.2 Introduction to Arrays 7.3 Using Arrays 7.5 ArrayList Methods 7.6 Arrays vs ArrayLists 7.8 The List Interface 7.9 2D Arrays (Matrices or Grids) 7.11 HashMaps 7.12 Binary 9.1 What is an Algorithm? 9.2 Linear Search 9.3 Binary Search 9.4 Selection Sort 9.5 Insertion Sort 9.6 Advanced: Recursion 9.7 Mergesort 12.1 Pokemon Simulation 13.1 Mad Libs
 1.14 Control Structures Example 1.15 More Karel Examples and Testing 1.16 How to Indent Your Code 1.19 Karel Challenges 8.1 Objects: Instances of Classes 8.4 Calling a Void Method 8.6 Calling a Non-void Method 11.1 Writing Classes
 1.14 Control Structures Example 1.15 More Karel Examples and Testing 1.16 How to Indent Your Code 1.19 Karel Challenges 8.1 Objects: Instances of Classes 8.4 Calling a Void Method 8.6 Calling a Non-void Method 11.1 Writing Classes 12.1 Introduction to Classes and Objects 12.2 Classes vs. Objects 12.3 Using a Class as a Client 12.4 Writing Classes 12.5 Writing Classes and Instance Methods 12.6 Getter and Setter Methods 12.7 Class Methods and Class Variables 12.9 Method Overloading 12.10 Local Variables and Scope 12.11 Key Terms for Classes 12.12 Objects vs Primitives 12.13 Inheritance 12.14 Class Design and Abstract Classes 12.15 Polymorphism 12.17 Interfaces
 1.13 Control Structures Example 1.14 More Karel Examples and Testing 1.15 How to Indent Your Code 1.16 Karel Challenges 2.8 Comparison Operators 2.9 For Loops 2.10 While Loops 2.11 If Statements 2.12 Loop-and-a-Half 2.13 Short-Circuit Evaluation 2.14 De Morgan's Laws 2.15 Strings 3.1 Java Methods 3.2 Methods and Parameters 3.3 Methods and Return Values 3.4 Javadocs and More Methods 3.5 Strings Methods 3.6 Strings and Characters 3.7 Exceptions 3.8 String Processing 4.1 Introduction to Classes and Objects 4.2 Classes vs. Objects 4.3 Using a Class as a Client 4.4 Writing Classes 4.5 Writing Classes and Instance Methods 4.6 Getter and Setter Methods 4.7 Class Methods and Class Variables 4.9 Method Overloading 4.10 Local Variables and Scope 4.11 Key Terms for Classes 4.12 Objects vs Primitives 4.13 Inheritance 4.14 Class Design and Abstract Classes 4.15 Polymorphism 4.17 Interfaces 5.1 What are Data Structures? 5.2 Introduction to Arrays 5.3 Using Arrays 5.5 ArrayList Methods 5.6 Arrays vs ArrayLists 5.8 The List Interface 5.9 2D Arrays (Matrices or Grids) 5.11 HashMaps 5.12 Binary 6.1 Writing BlackJack 8.1 What is an Algorithm? 8.2 Linear Search 8.3 Binary Search 8.4 Selection Sort 8.5 Insertion Sort 8.6 Advanced: Recursion 8.7 Mergesort 10.1 Final Project 11.1 Pokemon Simulation 13.1 Java Outside of CodeHS 12.1 Mad Libs
 7.1 Writing BlackJack 8.1 Mad Libs
 7.1 Pokemon Simulation 9.1 Java Outside of CodeHS 8.1 Mad Libs
 3.5 Top Down Design 5.3 Comments & Pseudocode 7.5 Functions 9.1 micro:bit Challenges 9.4 Final Project
 1.10 Top Down Design 3.3 Comments & Pseudocode 7.4 Functions 12.1 Arduino Challenges 12.4 Final Project 14.1 Classes and Objects 14.5 Class Variables vs. Instance Variables 14.6 Inheritance 14.9 Modules
 3.5 Top Down Design
 3.5 Top Down Design
 3.10 Top Down Design
 2.10 Top Down Design 12.1 Classes and Objects 12.5 Class Variables vs. Instance Variables 12.6 Inheritance 12.9 Modules 16.1 Project: Who Said It?
 1.5 Functions in Karel 1.6 Top Down Design and Decomposition in Karel 2.1 Practice PT: Pair-Programming Paint! 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.7 Python vs Karel 5.8 Basic Python and Graphics Challenges 6.1 Practice PT: Tell a Story 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter! 16.1 Create Performance Task 27.1 Classes and Objects 27.5 Class Variables vs. Instance Variables 27.6 Inheritance 27.9 Modules 29.1 Project: Who Said It?
 6.4 Using Methods to Update String States
 6.4 Using Methods to Update String States
 1.4 Functions in Karel 1.6 Top Down Design and Decomposition in Karel 2.1 Practice PT: Pair-Programming Paint! 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.7 JavaScript vs Karel 5.8 Basic JavaScript and Graphics Challenges 6.1 Project: Tell a Story 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter!
 1.4 Functions in Karel 1.6 Top Down Design and Decomposition in Karel
 1.5 Functions in Karel 1.7 Top Down Design and Decomposition in Karel 2.1 Practice PT: Pair-Programming Paint! 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.7 JavaScript vs Karel 5.8 Basic JavaScript and Graphics Challenges 6.1 Project: Tell a Story 12.1 Practice PT: Create an Image Filter! 19.1 Create Performance Task 31.1 Practice PT: Steganography
 1.5 Functions in Karel 1.7 Top Down Design and Decomposition in Karel 2.1 Practice PT: Pair-Programming Paint! 5.1 Functions and Parameters 1 5.2 Functions and Parameters 2 5.3 Functions and Parameters 3 5.4 Functions and Return Values 1 5.5 Functions and Return Values 2 5.7 JavaScript vs Karel 5.8 Basic JavaScript and Graphics Challenges 6.1 Project: Tell a Story 9.1 Practice PT: Steganography 10.1 Practice PT: Create an Image Filter! 16.1 Create Performance Task
 2.3 Comments & Pseudocode 3.1 Functions in Karel 3.3 The Start Function 3.4 Top Down Design and Decomposition in Karel 7.5 Functions 9.1 Karel Challenges 10.1 micro:bit Challenges 10.4 Final Project 11.1 Final Project
 1.3 Comments & Pseudocode 2.5 Functions 3.1 micro:bit Challenges 3.4 Final Project
 1.3 Comments & Pseudocode 2.4 Functions 3.1 Arduino Challenges 3.4 Final Project
 2.1 Objects: Instances of Classes 2.4 Calling a Void Method 2.6 Calling a Non-void Method 5.1 Writing Classes
 2.1 Functions in Karel 2.3 The Start Function 2.4 Top Down Design and Decomposition in Karel 7.1 Karel Challenges 8.1 Final Project