### Please enable JavaScript to use CodeHS

Intro to Programming in JavaScript with Arduino

1. ## Programming With Karel

1. ### 1.1 Introduction to Programming With Karel

2. Video 1.1.1 Introduction to Programming With Karel
3. Check for Understanding 1.1.2 Quiz: Karel Commands
4. Example 1.1.3 Our First Karel Program
5. Exercise 1.1.4 Your First Karel Program
6. Exercise 1.1.5 Short Stack
7. ### 1.2 More Basic Karel

8. Video 1.2.1 More Basic Karel
9. Check for Understanding 1.2.2 More Basic Karel Quiz
10. Example 1.2.3 Tennis Ball Square
11. Exercise 1.2.4 Make a Tower
12. Exercise 1.2.5 Pyramid of Karel
13. ### 1.3 Karel Can't Turn Right

14. Video 1.3.1 Karel Can't Turn Right
15. Check for Understanding 1.3.2 Karel Can't Turn Right Quiz
16. Example 1.3.3 Tower and Turn Right
17. Exercise 1.3.4 Slide Karel
18. Exercise 1.3.5 Fireman Karel
19. Badge 1.3.6 Karel Turns Right Badge
20. ### 1.4 Functions in Karel

21. Video 1.4.1 Functions in Karel
22. Check for Understanding 1.4.2 Functions in Karel Quiz
23. Example 1.4.3 Turn Around
24. Exercise 1.4.4 Pancakes
25. Exercise 1.4.5 Mario Karel
26. ### 1.5 The Start Function

27. Video 1.5.1 The Start Function
28. Check for Understanding 1.5.2 The Start Function Quiz
29. Example 1.5.3 Tower with Start Function
30. Exercise 1.5.4 Pancakes with Start
31. ### 1.6 Top Down Design and Decomposition in Karel

32. Video 1.6.1 Top Down Design and Decomposition in Karel
33. Check for Understanding 1.6.2 Top Down Design and Decomposition Quiz
34. Example 1.6.3 Hurdle Karel
35. Exercise 1.6.4 The Two Towers
36. ### 1.7 Commenting Your Code

37. Video 1.7.1 Commenting Your Code
38. Check for Understanding 1.7.2 Commenting Your Code Quiz
39. Example 1.7.3 Hurdle Karel
40. Exercise 1.7.4 The Two Towers + Comments
41. ### 1.8 Super Karel

42. Video 1.8.1 Super Karel
43. Check for Understanding 1.8.2 Super Karel Quiz
44. Example 1.8.3 Hurdle Karel (with SuperKarel)
45. Exercise 1.8.4 The Two Towers + SuperKarel
47. ### 1.9 For Loops

48. Video 1.9.1 For Loops
49. Check for Understanding 1.9.2 For Loops Quiz
50. Example 1.9.3 Repeated Move
51. Example 1.9.4 Put Down Tennis Balls
52. Exercise 1.9.5 Take 'em All
53. Exercise 1.9.6 Dizzy Karel
54. Exercise 1.9.7 Ball in Each Corner
55. Exercise 1.9.8 Lots of Hurdles
56. ### 1.10 If Statements

57. Video 1.10.1 If Statements
58. Check for Understanding 1.10.2 If Statements Quiz
59. Example 1.10.3 If Statements
60. Example 1.10.4 Safe Take Ball
61. Exercise 1.10.5 Is There a Ball?
62. Exercise 1.10.6 Don't Crash!
63. ### 1.11 If/Else Statements

64. Video 1.11.1 If/Else Statements
65. Check for Understanding 1.11.2 If/Else Statements Quiz
66. Example 1.11.3 If/Else Statements
67. Example 1.11.4 Opposite Day
68. Exercise 1.11.5 Right Side Up
69. Exercise 1.11.6 Right vs. Left Square
71. ### 1.12 While Loops in Karel

72. Video 1.12.1 While Loops in Karel
73. Check for Understanding 1.12.2 While Loops in Karel Quiz
74. Example 1.12.3 Move to Wall
75. Exercise 1.12.4 Follow The Yellow Ball Road
76. Exercise 1.12.5 Lay Row of Tennis Balls
77. Exercise 1.12.6 Big Tower
78. ### 1.13 Control Structures Example

79. Video 1.13.1 Control Structures Example
80. Check for Understanding 1.13.2 Control Structures Example Quiz
81. Example 1.13.3 Cleanup Karel
82. Exercise 1.13.4 Random Hurdles
83. Survey 1.13.5 Mindset Survey 1
84. ### 1.14 More Karel Examples and Testing

85. Video 1.14.1 More Karel Examples and Testing
86. Check for Understanding 1.14.2 Quiz: Which Control Structure?
87. Example 1.14.3 Move Tennis Ball Stack
88. Example 1.14.4 Climbing Karel
89. ### 1.15 How to Indent Your Code

90. Video 1.15.1 How to Indent Your Code
91. Check for Understanding 1.15.2 How to Indent Your Code Quiz
92. Example 1.15.3 Dance and Clean Karel
93. Exercise 1.15.4 Diagonal
94. Exercise 1.15.5 Staircase
96. ### 1.16 Programming with Karel Quiz

97. Unit Quiz 1.16.1 Programming with Karel Quiz
2. ## Karel Challenges

1. ### 2.1 Challenge Problems

2. Challenge 2.1.1 Fetch
3. Challenge 2.1.2 Racing Karel
4. Challenge 2.1.3 Tower Builder
5. Challenge 2.1.4 Super Cleanup Karel
6. Challenge 2.1.5 Double Tennis Balls
3. ## JavaScript and Graphics

1. ### 3.1 Hello World

2. Video 3.1.1 Hello World
3. Check for Understanding 3.1.2 Hello World Quiz
4. Example 3.1.3 Hello World
5. Exercise 3.1.4 Your Name and Hobby
6. ### 3.2 Variables

7. Video 3.2.1 Variables
8. Check for Understanding 3.2.2 Variables Quiz
9. Example 3.2.3 Basic Variables
10. Exercise 3.2.4 Daily Activities
11. ### 3.3 User Input

12. Video 3.3.1 User Input
13. Check for Understanding 3.3.2 User Input Quiz
14. Example 3.3.3 Basic User Input
15. Exercise 3.3.4 Dinner Plans
17. ### 3.4 Basic Math in JavaScript

18. Video 3.4.1 Basic Math in JavaScript
19. Check for Understanding 3.4.2 Basic Math in JavaScript Quiz
20. Example 3.4.3 Simple Calculator
21. Example 3.4.4 Dollars to Pounds
22. Example 3.4.5 Dividing Up Groups
23. Exercise 3.4.6 T-Shirt Shop
24. Exercise 3.4.7 Running Speed
25. ### 3.5 Using Graphics in JavaScript

26. Video 3.5.1 Graphics
27. Check for Understanding 3.5.2 JavaScript Graphics Quiz
28. Example 3.5.3 Graphics Hello World
29. Example 3.5.4 Blue Circle
30. Example 3.5.5 Red Rectangle
31. Example 3.5.6 8 Ball
32. Exercise 3.5.7 Flag of the Netherlands
33. Exercise 3.5.8 Snowman
34. ### 3.6 Programming with JavaScript Quiz

35. Unit Quiz 3.6.1 JavaScript and Graphics Quiz
4. ## Graphics Challenges

1. ### 4.1 Collaborative Programming

2. Video 4.1.1 Pair-Programming
3. Check for Understanding 4.1.2 Pair-Programming
4. Connection 4.1.3 Why Practice Pair-Programming?
5. Free Response 4.1.4 Pair-Programming Reflection
6. ### 4.2 Graphics Challenges

7. Challenge 4.2.1 Ghost
8. Challenge 4.2.2 Fried Egg
9. Challenge 4.2.3 Draw Something
5. ## Intro to Arduino

1. ### 5.1 Welcome to Arduino!

2. Video 5.1.1 Intro to Arduino
3. Free Response 5.1.2 Explore an Arduino Project
4. Free Response 5.1.3 Sezme: Memory Game
5. Video 5.1.4 Using Tinkercad
7. Connection 5.1.6 Exploration: Tinkercad
8. Video 5.1.7 Exploration 1.1 Follow-up
9. Free Response 5.1.8 Background & Experience
10. Free Response 5.1.9 Goal Setting
11. ### 5.2 Setting Up your Arduino

12. Video 5.2.1 Setting Up your Arduino
13. Connection 5.2.2 Exploration: Intro to Programming with Arduino
14. Video 5.2.3 Exploration 1.2 Follow-up
15. Exercise 5.2.4 LED Blink
16. Exercise 5.2.5 Long and Short LED Blink
17. Exercise 5.2.6 Morse Code
18. ### 5.3 Comments & Pseudocode

19. Video 5.3.1 Comments & Pseudocode
20. Check for Understanding 5.3.2 Comments & Pseudocode
21. Notes 5.3.3 Blink LED with Comments
22. Free Response 5.3.4 Blinking in Pseudocode
23. Connection 5.3.5 Exploration: Analog vs. Digital
24. Video 5.3.6 Exploration 1.3 Follow-up
25. Exercise 5.3.7 LED at Many Brightness Values
26. Exercise 5.3.8 Opposite Blinking LEDs
27. ### 5.4 Variables

28. Video 5.4.1 Variables
29. Check for Understanding 5.4.2 Variables
30. Notes 5.4.3 Variable Brightness
31. Free Response 5.4.4 Dim an LED
32. Video 5.4.5 Breadboards
33. Quiz 5.4.6 Breadboards
34. Notes 5.4.7 Variable Brightness with Breadboard
35. Connection 5.4.8 Exploration: Arduino Structure using Variables
36. Video 5.4.9 Exploration 1.4 Follow-up
37. Exercise 5.4.10 One Bright, One Fading
38. Exercise 5.4.11 Pulsing LED
39. ### 5.5 Debugging

40. Video 5.5.1 Debugging
41. Connection 5.5.2 Exploration: Using the Serial Monitor
42. Video 5.5.3 Exploration 1.5 Follow-up
43. Free Response 5.5.4 Physical Debugging: LED
44. Free Response 5.5.5 Physical Debugging: LED and Potentiometer
45. Free Response 5.5.6 Debugging with Tools: LED
46. ### 5.6 Intro to Arduino Quiz

47. Unit Quiz 5.6.1 Intro to Arduino Quiz
6. ## JavaScript Control Structures

1. ### 6.1 Booleans

2. Video 6.1.1 Booleans
3. Check for Understanding 6.1.2 Booleans Quiz
4. Example 6.1.3 First Boolean
5. Exercise 6.1.4 Do You Have a Dog?
6. ### 6.2 Logical Operators

7. Video 6.2.1 Logical Operators
8. Check for Understanding 6.2.2 Logical Operators Quiz
9. Example 6.2.3 Light Switch
10. Example 6.2.4 President
11. Example 6.2.5 Wasting Time
12. Exercise 6.2.6 Can You Graduate?
13. Exercise 6.2.7 School's Out
14. ### 6.3 Comparison Operators

15. Video 6.3.1 Comparison Operators
16. Check for Understanding 6.3.2 Comparison Operators Quiz
17. Example 6.3.3 Voting Age
18. Example 6.3.4 Grade Range
19. Exercise 6.3.5 Rolling Dice
20. Exercise 6.3.6 Girl Scout Designation
21. ### 6.4 If Statements

22. Video 6.4.1 If Statements
23. Check for Understanding 6.4.2 If Statements Quiz
24. Example 6.4.3 Negative Numbers
25. Example 6.4.4 Great Names
26. Example 6.4.5 Even and Odd
27. Example 6.4.6 Secret Password
28. Exercise 6.4.7 Teenagers
29. Exercise 6.4.8 Dietary Restrictions
31. Survey 6.4.10 Mindset Survey 2
32. ### 6.5 For Loops in JavaScript

33. Video 6.5.1 Basic For Loop
34. Check for Understanding 6.5.2 For Loops Quiz
35. Example 6.5.3 For Loop
36. Exercise 6.5.4 Chalkboard
37. Exercise 6.5.5 The Worm
38. Exercise 6.5.6 Caterpillar
39. ### 6.6 General For Loops

40. Video 6.6.1 General For Loop
41. Check for Understanding 6.6.2 General For Loop Quiz
42. Example 6.6.3 Countdown
43. Example 6.6.4 Count By Twos
44. Exercise 6.6.5 Count By Sevens
45. Exercise 6.6.6 Powers of Two
46. ### 6.7 For Loop Practice

47. Video 6.7.1 For Loop Examples
48. Check for Understanding 6.7.2 For Loop Examples Quiz
49. Example 6.7.3 For Loop Sum
50. Exercise 6.7.4 Better Sum
51. Exercise 6.7.5 Factorial
52. Exercise 6.7.6 All Dice Values
53. ### 6.8 Random Numbers

54. Video 6.8.1 Random Numbers
55. Check for Understanding 6.8.2 Random Numbers Quiz
56. Example 6.8.3 Rolling a Die
57. Example 6.8.4 Flipping a Coin
58. Exercise 6.8.5 Lots of Rolls
59. Exercise 6.8.6 Random Color Square
61. ### 6.9 While Loops

62. Video 6.9.1 While Loops
63. Check for Understanding 6.9.2 While Loops Quiz
64. Example 6.9.3 While Loop Countdown
65. Exercise 6.9.4 Inventory
66. Exercise 6.9.5 Fibonacci
67. Exercise 6.9.6 Concentric Circles
68. ### 6.10 Loop and a Half

69. Video 6.10.1 Loop and a Half
70. Check for Understanding 6.10.2 Loop and a Half Quiz
71. Example 6.10.3 Adding Up Numbers
72. Exercise 6.10.4 Snake Eyes
73. Exercise 6.10.5 Better Password Prompt
75. ### 6.11 Javascript Control Structures Quiz

76. Unit Quiz 6.11.1 JavaScript Control Structures Quiz
7. ## Control Structures Challenges

1. ### 7.1 Control Structures Challenges

2. Challenge 7.1.1 Guessing Game
3. Challenge 7.1.2 Circles in Circles
4. Challenge 7.1.3 Circles in Squares
5. Challenge 7.1.4 Happy Birthday!
8. ## Functions and Parameters

1. ### 8.1 Functions and Parameters 1

2. Video 8.1.1 Functions and Parameters 1
3. Check for Understanding 8.1.2 Functions and Parameters Quiz 1
4. Example 8.1.3 Double Number
5. Exercise 8.1.4 Square
6. Exercise 8.1.5 Triple
7. ### 8.2 Functions and Parameters 2

8. Video 8.2.1 Functions and Parameters 2
9. Check for Understanding 8.2.2 Functions and Parameters Quiz 2
10. Example 8.2.3 Sum Function
11. Exercise 8.2.4 Area of Triangle
12. Exercise 8.2.5 Height in Meters
13. ### 8.3 Functions and Parameters 3

14. Video 8.3.1 Functions and Parameters 3
15. Check for Understanding 8.3.2 Functions and Parameters Quiz 3
16. Example 8.3.3 Draw Circles
17. Exercise 8.3.4 Vertical Lines
18. Exercise 8.3.5 Graphics Stop Light
19. Exercise 8.3.6 Pool Table
20. Exercise 8.3.7 Cityscape
22. Survey 8.3.9 Mindset Survey 3
23. ### 8.4 Functions and Return Values 1

24. Video 8.4.1 Functions and Return Values 1
25. Check for Understanding 8.4.2 Functions and Return Values Quiz
26. Example 8.4.3 Double Number
27. Exercise 8.4.4 Square with Return Values
28. Exercise 8.4.5 Triple with Return Values
29. Exercise 8.4.6 Gymnastics Mats
30. ### 8.5 Functions and Return Values 2

31. Video 8.5.1 Functions and Return Values 2
32. Check for Understanding 8.5.2 Functions and Return Values Quiz 2
33. Example 8.5.3 Return Values
34. Exercise 8.5.4 Is It Even?
35. Exercise 8.5.5 Max
36. ### 8.6 Local Variables and Scope

37. Video 8.6.1 Local Variables and Scope
38. Check for Understanding 8.6.2 Local Variables and Scope Quiz
39. Example 8.6.3 Return Values
40. Exercise 8.6.4 Local Variables
42. ### 8.7 Functions and Parameters Quiz

43. Unit Quiz 8.7.1 Functions and Parameters Quiz
9. ## Functions Challenges

1. ### 9.1 Functions Challenges

2. Challenge 9.1.1 Hailstone Sequence
3. Challenge 9.1.2 Balloons
4. Challenge 9.1.3 Grades
5. Challenge 9.1.4 Ghost Invasion!
10. ## Program Control with Arduino

1. ### 10.1 Loops

2. Video 10.1.1 Loops
3. Check for Understanding 10.1.2 Loops
4. Notes 10.1.3 Pulsing LED with Loops
5. Notes 10.1.4 Light LED Based on Potentiometer
6. Free Response 10.1.5 LED Blink
7. Free Response 10.1.6 Alternating LED until Button Press
8. Connection 10.1.7 Exploration: Using Servo Motors
9. Video 10.1.8 Exploration 2.1 Follow-up
10. Exercise 10.1.9 Sweeping Servo
11. Exercise 10.1.10 Blinking Based on Potentiometer
12. ### 10.2 If/Else Statements

13. Video 10.2.1 If/Else Statements
14. Check for Understanding 10.2.2 If/Else Statements
15. Notes 10.2.3 LED Brightness with Potentiometer
16. Free Response 10.2.4 Stoplight LEDs
17. Free Response 10.2.5 LED Brightness using Buttons
18. Connection 10.2.6 Exploration: Using Buttons to Control Code
19. Video 10.2.7 Exploration 2.2 Follow-up
20. Exercise 10.2.8 Servo Position by Button Press
21. Exercise 10.2.9 Servo Sweep with Reset
22. ### 10.3 Arithmetic, Comparison, and Logical Operators

23. Video 10.3.1 Arithmetic, Comparison, and Logical Operators
24. Check for Understanding 10.3.2 Arithmetic, Comparison, and Logical Operators
25. Notes 10.3.3 Potentiometer with AND
26. Notes 10.3.4 Potentiometer with OR
27. Free Response 10.3.5 Potentiometer Controlling LED
28. Connection 10.3.6 Exploration: Ultrasonic Range Finder
29. Video 10.3.7 Exploration 2.3 Follow-up
30. Exercise 10.3.8 Distance Warning Lights
31. Exercise 10.3.9 Servo with Potentiometer
32. ### 10.4 Functions

33. Video 10.4.1 Functions
34. Check for Understanding 10.4.2 Functions
35. Notes 10.4.3 Using Functions
36. Notes 10.4.4 Using Functions with Parameters
37. Free Response 10.4.5 Distance LEDs
38. Connection 10.4.6 Exploration: Using More Sensors
39. Video 10.4.7 Exploration 2.4 Follow-up
40. Exercise 10.4.8 Candy Dispensing System
41. Exercise 10.4.9 SOS
42. ### 10.5 Using Motors

43. Connection 10.5.1 Exploration: Controlling Motors
44. Video 10.5.2 Exploration 2.5 Follow-up
45. Notes 10.5.3 Motors Example
46. Exercise 10.5.4 Driverless Car
47. Exercise 10.5.5 Car Simulation
48. Free Response 10.5.6 Choose an External Sensor to Investigate
49. ### 10.6 Program Control with Arduino Quiz

50. Unit Quiz 10.6.1 Program Control with Arduino Quiz
11. ## Animation and Games

1. ### 11.1 Timers

2. Video 11.1.1 Timers
3. Check for Understanding 11.1.2 Timers Quiz
4. Example 11.1.3 Moving Ball
5. Example 11.1.4 Magic 8 Ball
6. Exercise 11.1.5 Crazy Ball
7. ### 11.2 Random Circles

8. Video 11.2.1 Example: Random Circles
9. Check for Understanding 11.2.2 Random Circles Quiz
10. Example 11.2.3 Random Circles
11. Example 11.2.4 Spinner Example
12. Exercise 11.2.5 Growing Circle
13. Exercise 11.2.6 Paint splatter
15. ### 11.3 Random Ghosts

16. Video 11.3.1 Example: Random Ghosts
17. Check for Understanding 11.3.2 Random Ghosts Quiz
18. Example 11.3.3 Random Ghosts
19. Example 11.3.4 Random Fireworks
20. Exercise 11.3.5 Circle Wall
21. Exercise 11.3.6 Brick Wall
22. ### 11.4 Bouncing Ball

23. Video 11.4.1 Example: Bouncing Ball
24. Check for Understanding 11.4.2 Bouncing Ball Quiz
25. Example 11.4.3 Bouncing Ball
26. Exercise 11.4.4 Hotspot Ball
27. Exercise 11.4.5 Trail
29. ### 11.5 Mouse Events: Mouse Clicked

30. Video 11.5.1 Mouse Events: Mouse Clicked
31. Check for Understanding 11.5.2 Mouse Events: Mouse Clicked Quiz
32. Example 11.5.3 Click For Circles
33. Example 11.5.4 Click For Ghosts
34. Exercise 11.5.5 Teleporting Ball
35. Exercise 11.5.6 Pause
36. ### 11.6 Mouse Events: Mouse Moved

37. Video 11.6.1 Mouse Events: Mouse Moved
38. Check for Understanding 11.6.2 Mouse Events: Mouse Moved Quiz
39. Example 11.6.3 Simple Painting
40. Example 11.6.4 Colorful Drag to Paint
41. Exercise 11.6.5 Coordinates
42. Exercise 11.6.6 Target
43. ### 11.7 Drawing Lines

44. Video 11.7.1 Example: Drawing Lines
45. Check for Understanding 11.7.2 Drawing Lines Quiz
46. Example 11.7.3 Drawing Lines
47. Exercise 11.7.4 Leash
49. Survey 11.7.6 Mindset Survey 4
50. ### 11.8 Key Events

51. Video 11.8.1 Key Events
52. Check for Understanding 11.8.2 Key Events Quiz
53. Example 11.8.3 Keyboard Square
54. Exercise 11.8.4 Basic Snake
55. ### 11.9 Crazy Ball Game

56. Video 11.9.1 Crazy Ball Game 1
57. Check for Understanding 11.9.2 Crazy Ball Game Quiz 1
58. Example 11.9.3 Crazy Ball Game 1
59. Video 11.9.4 Crazy Ball Game 2
60. Check for Understanding 11.9.5 Crazy Ball Game Quiz 2
61. Example 11.9.6 Crazy Ball Game 2
62. Exercise 11.9.7 Click for Collision
63. Exercise 11.9.8 Drag and Drop
64. ### 11.10 Animation and Games Quiz

65. Unit Quiz 11.10.1 Animation and Games Quiz
12. ## Animation Challenges

1. ### 12.1 Animation Challenges

2. Challenge 12.1.1 Blinking Rectangles
3. Challenge 12.1.2 Increasing Number of Shapes
13. ## Project: Breakout

1. ### 13.1 Breakout

2. Challenge 13.1.1 Bricks
3. Challenge 13.1.2 Ball and Paddle
4. Challenge 13.1.3 Breakout
14. ## Advanced Arduino

1. ### 14.1 Arduino Challenges

2. Video 14.1.1 Arduino Challenges: Extended Variable Types
3. Check for Understanding 14.1.2 Arduino Challenges: Extended Variable Types
4. Connection 14.1.3 Exploration: Advanced Arduino Programs
5. Video 14.1.4 Exploration 3.1 Follow-up
6. Exercise 14.1.5 Alter Blink Time
7. Challenge 14.1.6 Digital Watch, Pt 1
8. Challenge 14.1.7 Digital Watch, Pt 2
9. Challenge 14.1.8 Elevator
10. Free Response 14.1.9 Project Reflection
11. ### 14.2 Explore a New Sensor

12. Notes 14.2.1 Explore a New Sensor: Overview
13. Connection 14.2.2 Exploration: Getting Started with a New Sensor
14. Free Response 14.2.3 Video/ Exploration
15. Free Response 14.2.4 Example Program
16. Video 14.2.5 How to add images
17. Free Response 14.2.6 Build an Exercise to Teach about your Sensor!
18. Free Response 14.2.7 Creating a Lesson: Reflection
19. ### 14.3 Step-by-Step Arduino Project

20. Free Response 14.3.1 Research and Choose Project
21. Free Response 14.3.2 Create Updated Directions
22. Free Response 14.3.3 Step by Step Project Reflection
23. ### 14.4 Final Project

24. Free Response 14.4.1 Project Brainstorm and Selection
25. Free Response 14.4.2 Build a Prototype
26. Free Response 14.4.3 Test and Improve your Project
27. Presentation 14.4.4 Present your Project
15. ## Final Project

1. ### 15.1 Project Prep and Development

2. Free Response 15.1.1 Planning and Design
3. Pseudocode 15.1.2 Pseudocode
4. Challenge 15.1.3 Write the Code!
5. Presentation 15.1.4 Present your Project
16. ## Final Exam

1. ### 16.1 Final Exam

2. Final 16.1.1 JavaScript Final Exam Pt. 1: Multiple Choice
17. ## Midterm

1. ### 17.1 Midterm

2. Midterm 17.1.1 Midterm Pt 1: Multiple Choice
18. ## Extra Karel Practice

1. ### 18.1 Extra Karel Practice

2. Challenge 18.1.1 Functions Practice: K For Karel
3. Challenge 18.1.2 Functions Practice: Karel Plants A Tree
4. Challenge 18.1.3 Functions Practice: X Marks the Spot
5. Challenge 18.1.4 While Loop Practice: Blackout
6. Challenge 18.1.5 While Loop Practice: Move To Top
7. Challenge 18.1.6 Functions and While Loop Practice: Opposite Corner
8. Challenge 18.1.7 While Loop Practice: Checkered Row
9. Challenge 18.1.8 For Loop Practice: Tall Hurdles
10. Challenge 18.1.9 Functions and While Loop Practice: Row and Back
11. Challenge 18.1.10 Functions and For Loop Practice: Opposite Squares
12. Challenge 18.1.11 Stairway To Heaven
14. Exercise 18.1.13 For Loop Square
19. ## Extra Karel Puzzles

1. ### 19.1 Extra Karel Puzzles

2. Challenge 19.1.1 Midpoint Karel
3. Challenge 19.1.2 Target Karel
4. Challenge 19.1.3 The Winding Yellow Road
5. Challenge 19.1.4 Super Random Hurdles
6. Challenge 19.1.5 Copy
7. Challenge 19.1.6 Multiply
8. Challenge 19.1.7 Fibonacci Karel
9. Challenge 19.1.8 Comparison Karel
10. Challenge 19.1.9 Swap
11. Challenge 19.1.10 Sorting Karel
20. ## Functions and Parameters Practice

1. ### 20.1 Functions and Parameters Practice

2. Challenge 20.1.1 Taking a Power
3. Challenge 20.1.2 Dot Rectangle
4. Challenge 20.1.3 Print the Date
5. Challenge 20.1.4 Grades
6. Challenge 20.1.5 Concentric Circles
7. Challenge 20.1.6 Graphics Staircase
8. Exercise 20.1.7 The Weekend
9. Badge 20.1.8 Functions and Parameters Badge
21. ## Project: Tic Tac Toe

1. ### 21.1 Tic Tac Toe

2. Challenge 21.1.1 Tic Tac Toe: Part 1
3. Challenge 21.1.2 Tic Tac Toe: Part 2
4. Challenge 21.1.3 Tic Tac Toe: Full Game
5. Badge 21.1.4 Tic Tac Toe Badge
22. ## Project: Helicopter Game

1. ### 22.1 Game Design: Helicopter

2. Video 22.1.1 Introduction to Helicopter
3. ### 22.2 Basics

4. Video 22.2.1 Moving the Helicopter
5. Exercise 22.2.2 Moving the Helicopter
6. Video 22.2.3 Adding Obstacles
7. Exercise 22.2.4 Adding Obstacles
8. Video 22.2.5 Smoother Movement
9. Exercise 22.2.6 Smoother Movement
11. ### 22.3 Improvements

12. Video 22.3.1 Colliding with Walls
13. Exercise 22.3.2 Wall Collisions
14. Video 22.3.3 Colliding with Obstacles
15. Exercise 22.3.4 Obstacle Collisions
16. Video 22.3.5 Adding Terrain
17. Exercise 22.3.6 Adding Terrain
18. Video 22.3.7 Moving the Terrain
19. Exercise 22.3.8 Moving the Terrain
20. ### 22.4 Polish

21. Video 22.4.1 Helicopter Image and Points!
22. Exercise 22.4.2 Image and Points
23. Video 22.4.3 Dust
24. Exercise 22.4.4 Dust
25. Video 22.4.5 More Obstacles
26. Exercise 22.4.6 More Obstacles
27. Challenge 22.4.7 Helicopter Extensions