### Please enable JavaScript to use CodeHS

Introduction to Computer Science in JavaScript (Bulldog)

#### Outline

1. Programming with Karel
1.1 Introduction to Programming With Karel
Video 1.1.1 Introduction to Programming With Karel
Check for Understanding 1.1.2 Karel Commands Quiz
Example 1.1.3 Our First Karel Program
Exercise 1.1.4 Your First Karel Program
Exercise 1.1.5 Short Stack
1.2 More About Karel
Video 1.2.1 More About Karel
Check for Understanding 1.2.2 More Basic Karel Quiz
Example 1.2.3 Tennis Ball Square
Exercise 1.2.4 Make a Tower
Exercise 1.2.5 Pyramid of Karel
1.3 Karel Can't Turn Right
Video 1.3.1 Karel Can't Turn Right
Check for Understanding 1.3.2 Karel Can't Turn Right Quiz
Example 1.3.3 Tower and Turn Right
Exercise 1.3.4 Slide Karel
Exercise 1.3.5 Fireman Karel
Badge 1.3.6 Karel Turns Right Badge
1.4 Functions in Karel
Video 1.4.1 Functions in Karel
Check for Understanding 1.4.2 Functions in Karel Quiz
Example 1.4.3 Turn Around
Exercise 1.4.4 Pancakes
Exercise 1.4.5 Mario Karel
1.5 The Main Function
Video 1.5.1 The Main Function
Check for Understanding 1.5.2 The Main Function Quiz
Example 1.5.3 Tower with Main Function
Exercise 1.5.4 Pancakes with Main
1.6 Top Down Design and Decomposition in Karel
Video 1.6.1 Top Down Design and Decomposition
Check for Understanding 1.6.2 Top Down Design and Decomposition Quiz
Video 1.6.3 Top Down Design and Decomposition in Karel
Example 1.6.4 Hurdle Karel
Exercise 1.6.5 The Two Towers
1.7 Commenting Your Code
Video 1.7.1 Commenting Your Code
Check for Understanding 1.7.2 Commenting Your Code Quiz
Example 1.7.3 Hurdle Karel
Exercise 1.7.4 The Two Towers + Comments
1.8 Super Karel
Video 1.8.1 Super Karel
Check for Understanding 1.8.2 Super Karel Quiz
Example 1.8.3 Hurdle Karel (with SuperKarel)
Exercise 1.8.4 The Two Towers + SuperKarel
Badge 1.8.5 Super Karel Badge
1.9 For Loops
Video 1.9.1 For Loops
Check for Understanding 1.9.2 For Loops Quiz
Example 1.9.3 Repeated Move
Example 1.9.4 Put Down Tennis Balls
Exercise 1.9.5 Take 'em All
Exercise 1.9.6 Dizzy Karel
Exercise 1.9.7 Ball in Each Corner
Exercise 1.9.8 Lots of Hurdles
1.10 If Statements and Conditionals
Video 1.10.1 If Statements and Conditionals
Check for Understanding 1.10.2 If Statements and Conditionals Quiz
Example 1.10.3 If Statements and Conditionals
Example 1.10.4 Safe Take Ball
Exercise 1.10.5 Is There a Ball?
Exercise 1.10.6 Don't Crash!
1.11 If/Else Statements
Video 1.11.1 If/Else Statements
Check for Understanding 1.11.2 If/Else Statements Quiz
Example 1.11.3 If/Else Statements
Example 1.11.4 Opposite Day
Exercise 1.11.5 Right Side Up
Exercise 1.11.6 Right vs. Left Square
Badge 1.11.7 Conditional Karel Badge
1.12 While Loops
Video 1.12.1 While Loops
Check for Understanding 1.12.2 While Loops Quiz
Example 1.12.3 Move to Wall
Exercise 1.12.4 Follow The Yellow Ball Road
Exercise 1.12.5 Lay Row of Tennis Balls
Exercise 1.12.6 Big Tower
1.13 How to Indent Your Code
Video 1.13.1 How to Indent Your Code
Check for Understanding 1.13.2 How to Indent Your Code Quiz
Example 1.13.3 Dance and Clean Karel
Exercise 1.13.4 Diagonal
Exercise 1.13.5 Staircase
Badge 1.13.6 Karel Exercises Badge
1.14 Control Structures Example
Video 1.14.1 Control Structures Example
Check for Understanding 1.14.2 Control Structures Example Quiz
Example 1.14.3 Cleanup Karel
Exercise 1.14.4 Random Hurdles
1.15 More Karel Examples and Testing
Video 1.15.1 More Karel Examples and Testing
Example 1.15.2 Move Tennis Ball Stack
Video 1.15.3 Live Coding: Climbing Karel
Example 1.15.4 Climbing Karel
Check for Understanding 1.15.5 Quiz: Which Control Structure?
Exercise 1.15.6 Opposite Corner
1.16 Programming with Karel Quiz
Unit Quiz 1.16.1 Programming with Karel Quiz
2. Karel Challenges
2.1 Challenge Problems
Challenge 2.1.1 Fetch
Challenge 2.1.2 Racing Karel
Challenge 2.1.3 Tower Builder
Challenge 2.1.4 Super Cleanup Karel
Challenge 2.1.5 Double Tennis Balls
Badge 2.1.6 Karel Challenges Badge
3. JavaScript Basics
3.1 Hello World
Video 3.1.1 Hello World
Check for Understanding 3.1.2 Hello World Quiz
Example 3.1.3 Hello World
Exercise 3.1.4 Your Name and Hobby
Exercise 3.1.5 ASCII Animals
3.2 Variables
Video 3.2.1 Variables
Video 3.2.2 Live Coding: Variables
Check for Understanding 3.2.3 Variables Quiz
Example 3.2.4 Basic Variables
Exercise 3.2.5 Daily Activities
Debugging 3.2.6 Debugging Variables
3.3 User Input
Video 3.3.1 User Input
Check for Understanding 3.3.2 User Input Quiz
Example 3.3.3 Basic User Input
Exercise 3.3.4 Dinner Plans
Exercise 3.3.5 Mad Lib
Badge 3.3.6 User Input Badge
3.4 Basic Math
Video 3.4.1 Basic Math
Check for Understanding 3.4.2 Basic Math Quiz
Example 3.4.3 Simple Calculator
Example 3.4.4 Dollars to Pounds
Example 3.4.5 Dividing Up Groups
Exercise 3.4.6 T-Shirt Shop
Exercise 3.4.7 Running Speed
3.5 Collaborative Programming
Video 3.5.1 Pair-Programming
Check for Understanding 3.5.2 Pair-Programming
Connection 3.5.3 Why Practice Pair-Programming?
Free Response 3.5.4 Pair-Programming Reflection
3.6 Random Numbers
Video 3.6.1 Random Numbers
Check for Understanding 3.6.2 Random Numbers Quiz
Example 3.6.3 Rolling a Die
Exercise 3.6.4 Treasure Chest Loot
Exercise 3.6.5 Multiplication Practice
Badge 3.6.6 Randomizer Badge
3.7 Basic Functions
Video 3.7.1 Basic Functions
Notes 3.7.2 Variables in Functions
Quiz 3.7.3 Basic Functions Quiz
Example 3.7.4 Function Flow
Exercise 3.7.5 Digital Business Card
Exercise 3.7.6 ASCII Karel
3.8 JavaScript Basics Quiz
Unit Quiz 3.8.1 JavaScript Basics Quiz
Badge 3.8.2 JavaScript Basics Badge
4. The Canvas and Graphics
4.1 Intro to the Canvas and Graphics
Video 4.1.1 Intro to Canvas and Graphics
Notes 4.1.2 Debug Mode for Positioning
Video 4.1.3 Live Coding: Circle and Rectangle
Connection 4.1.4 Canvas Coordinates
Quiz 4.1.5 Canvas and Graphics Quiz
Example 4.1.6 Creating a Circle
Example 4.1.7 A Circle and a Rectangle
Exercise 4.1.8 A Ball in a Box
Exercise 4.1.9 Raise the Flag
4.2 More Graphics Objects
Video 4.2.1 More Graphics Objects
Video 4.2.2 Live Coding: More Graphics Objects
Quiz 4.2.3 Graphics Objects Quiz
Example 4.2.4 Cute Animals
Example 4.2.5 Greetings, Earth!
Exercise 4.2.6 Exploration: XY Plot
Exercise 4.2.7 Create Your Meme
Exercise 4.2.8 Saturday Mornings
4.3 Positioning Graphics Objects
Video 4.3.1 Positioning Graphics Objects
Quiz 4.3.2 Positioning Quiz
Example 4.3.3 8 Ball
Exercise 4.3.4 Color the Rainbow
Challenge 4.3.5 Create Your Own Plant!
4.4 JavaScript Graphics Quiz
Quiz 4.4.1 JavaScript Graphics Quiz
5. Graphics Challenges
5.1 Graphics Challenges
Challenge 5.1.1 Ghost
Challenge 5.1.2 Fried Egg
Challenge 5.1.3 Draw Something
6. Control Structures
6.1 Booleans
Video 6.1.1 Booleans
Check for Understanding 6.1.2 Booleans Quiz
Example 6.1.3 Boolean Exploration
Exercise 6.1.4 Do You Have a Dog?
Free Response 6.1.5 Booleans are Questions
Exercise 6.1.6 Best Day Ever
6.2 If/Else Statements
Video 6.2.1 If Statements
Check for Understanding 6.2.2 If Statements Quiz
Example 6.2.3 Are You Logged In?
Exercise 6.2.4 Is It Raining?
Exercise 6.2.5 Mood Playlist
Badge 6.2.6 Conditionals Badge
6.3 Logical Operators
Video 6.3.1 Logical Operators
Check for Understanding 6.3.2 Logical Operators Quiz
Example 6.3.3 Light Switch
Example 6.3.4 Harry Potter
Example 6.3.5 Weak Password
Example 6.3.6 Logical Operators Game
Exercise 6.3.7 Can You Graduate?
Exercise 6.3.8 Switching Players
Exercise 6.3.9 A Day of Decisions
6.4 Comparison Operators
Video 6.4.1 Comparison Operators
Check for Understanding 6.4.2 Comparison Operators Quiz
Example 6.4.3 Great Names
Example 6.4.4 Grade Range
Example 6.4.5 Even and Odd
Exercise 6.4.6 Rolling Dice
Exercise 6.4.7 Teenagers
Exercise 6.4.8 Rocket Launch Requirements
Exercise 6.4.9 Trivia Game
6.5 Graphics and Conditionals
Notes 6.5.1 Graphics and Conditionals
Example 6.5.2 Circle or Rectangle?
Exercise 6.5.3 Correct or Incorrect?
Notes 6.5.4 Else If Statements
Example 6.5.5 Conditional Circle Color
Exercise 6.5.6 Odd or Even Shapes
Quiz 6.5.7 Graphics and Conditionals Quiz
Challenge 6.5.8 Interactive Modern Art
6.6 While Loops
Video 6.6.1 While Loops
Check for Understanding 6.6.2 While Loops Quiz
Example 6.6.3 While Loop Countdown
Debugging 6.6.4 Debugging: Best Name Ever
Exercise 6.6.5 Level Up
Exercise 6.6.6 Inventory
6.7 The Break Statement
Video 6.7.1 The Break Statement
Check for Understanding 6.7.2 The Break Statement Quiz
Example 6.7.3 Adding Up Numbers
Free Response 6.7.4 Break Statement Reflection
Exercise 6.7.5 Snake Eyes
Exercise 6.7.6 Better Password Prompt
Exercise 6.7.7 Riddle Machine
6.8 While Loops and Graphics
Notes 6.8.1 While Loops and Graphics
Example 6.8.2 Lots of Circles
Example 6.8.3 Corners on Corners
Exercise 6.8.4 Concentric Circles
Debugging 6.8.5 Debugging: Circle Positions
Exercise 6.8.6 Growing Squares
6.9 For Loops
Video 6.9.1 For Loops
Example 6.9.2 For Loop Exploration
Exercise 6.9.3 Chalkboard
Example 6.9.4 Count By Twos
Example 6.9.5 Eating Apples
Debugging 6.9.6 Countdown by Sevens
Check for Understanding 6.9.7 For Loops Quiz
Exercise 6.9.8 Lives Left
Example 6.9.9 For Loop Sum
Exercise 6.9.10 Jukebox
6.10 For Loops and Graphics
Notes 6.10.1 For Loops and Graphics
Example 6.10.2 Lots of Circles Revisited
Exercise 6.10.3 Exploration: Confetti
Notes 6.10.4 Using i to Position Objects and Adjust Size
Example 6.10.5 Horizontal Stripes #1: Using i to Adjust Position
Example 6.10.6 Horizontal Stripes #2: Using i to Adjust Size
Debugging 6.10.7 Debugging: Colorful Bullseye
Exercise 6.10.8 Caterpillar
Badge 6.10.9 Looper Badge
6.11 Javascript Control Structures Quiz
Unit Quiz 6.11.1 JavaScript Control Structures Quiz
7. Control Structures Challenges
7.1 Control Structures Challenges
Challenge 7.1.1 Guessing Game
Challenge 7.1.2 Landscape Generator
Challenge 7.1.3 Exploring RGB Color Codes
8. Functions
8.1 Parameters
Video 8.1.1 Parameters
Video 8.1.2 Live Coding: Parameters
Quiz 8.1.3 Parameters Quiz
Example 8.1.4 Greetings
Example 8.1.5 Slope of a Line
Example 8.1.6 Draw Lots of Circles!
Exercise 8.1.7 Area of Triangle
Exercise 8.1.8 Rainbow Revisited
Exercise 8.1.9 Cityscape
8.2 Return Values
Video 8.2.1 Return Values
Quiz 8.2.2 Return Values Quiz
Example 8.2.3 Mathematical Returns
Example 8.2.4 Offscreen Graphics
Exercise 8.2.5 Max
Exercise 8.2.6 Overlapping Graphics
Exercise 8.2.7 Is It Even?
8.3 Default Parameter Values
Video 8.3.1 Default Parameter Values
Quiz 8.3.2 Default Parameter Values Quiz
Example 8.3.3 Default Printing
Debugging 8.3.4 Farming International
Exercise 8.3.5 Compound Interest
Exercise 8.3.6 Default Face
8.4 Variable Scopes
Video 8.4.1 Variable Scope
Video 8.4.2 Live Coding: Variable Scope
Quiz 8.4.3 Variable Scope Quiz
Example 8.4.4 Scope of X
Exercise 8.4.5 Exploration: Scope of Ball
Free Response 8.4.6 Scope Reflection
Challenge 8.4.7 Choose Wisely Game
Badge 8.4.8 JavaScript Functions Badge
8.5 Functions Quiz
Unit Quiz 8.5.1 Functions and Parameters Quiz
9. Functions Challenges
9.1 Functions Challenges
Challenge 9.1.1 Global Travel Assistant
Challenge 9.1.2 Balloons
Challenge 9.1.3 Ghost Invasion!
Badge 9.1.4 Functions Challenges Badge
10. Animation and Games
10.1 Timers
Video 10.1.1 Timers
Check for Understanding 10.1.2 Timers Quiz
Example 10.1.3 Moving Ball
Example 10.1.4 Magic 8 Ball
Exercise 10.1.5 Crazy Ball
Exercise 10.1.6 Paint Splatter
Notes 10.1.7 Project: Evasion (Timers)
Free Response 10.1.8 Project Info and Links
10.2 Stopping Timers
Video 10.2.1 Stopping Timers
Check for Understanding 10.2.2 Stop Timer Quiz
Example 10.2.3 Random Circles
Exercise 10.2.4 Growing Circle
Exercise 10.2.5 Brick Wall
Notes 10.2.6 Project: Evasion (Stop Timers)
Badge 10.2.7 Animating Shapes Badge
10.3 Collisions
Video 10.3.1 Collisions
Video 10.3.2 Live Coding: Collisions
Check for Understanding 10.3.3 Collisions Quiz
Example 10.3.4 Bouncing Ball
Exercise 10.3.5 Collision Simulation
Exercise 10.3.6 Carnival Game
Notes 10.3.7 Project: Evasion (Collisions)
10.4 Mouse Click Events
Video 10.4.1 Mouse Click Events
Check for Understanding 10.4.2 Mouse Click Quiz
Example 10.4.3 Click For Circles
Exercise 10.4.4 Pausing the Carnival Game
Exercise 10.4.5 Dripping Paint
Notes 10.4.6 Project: Evasion (Mouse Click)
10.5 More Mouse Events
Video 10.5.1 More Mouse Events
Check for Understanding 10.5.2 More Mouse Events Quiz
Example 10.5.3 Simple Painting
Example 10.5.4 Painting with Color
Exercise 10.5.5 Coordinates
Exercise 10.5.6 Target
Exercise 10.5.7 Drag and Drop
Notes 10.5.8 Project: Evasion (More Mouse)
Badge 10.5.9 Advanced Animator Badge
10.6 Key Events
Video 10.6.1 Key Events
Check for Understanding 10.6.2 Key Events Quiz
Example 10.6.3 Keyboard Character
Exercise 10.6.4 Basic Snake
Notes 10.6.5 Project: Evasion (Key Events)
Free Response 10.6.6 Project Reflection
10.7 Animation and Games Quiz
Unit Quiz 10.7.1 Animation and Games Quiz
11. Animation Challenges
11.1 Animation Challenges
Challenge 11.1.1 Blinking Rectangles
Challenge 11.1.2 Increasing Number of Shapes
12. Project: Breakout
12.1 Breakout
Notes 12.1.1 Breakout Introduction
Challenge 12.1.2 Bricks
Challenge 12.1.3 Ball and Paddle
Challenge 12.1.4 Collisions
Badge 12.1.5 Breakout Badge
13. Data Structures: Arrays
13.1 Intro to Arrays
Video 13.1.1 Intro to Arrays
Notes 13.1.2 When to Use Arrays?
Check for Understanding 13.1.3 Intro to Arrays Quiz
Example 13.1.4 Array Basics
Exercise 13.1.5 Exploration: A Boxy Array
Exercise 13.1.6 List of Places to Travel
Exercise 13.1.7 Top Websites
13.2 Adding & Removing from an Array
Video 13.2.1 Adding & Removing from an Array
Check for Understanding 13.2.2 Adding & Removing from an Array Quiz
Notes 13.2.3 A Note About Arrays as Parameters
Example 13.2.4 Temperature Array
Exercise 13.2.5 Exploration: Creating a To-Do List
Exercise 13.2.6 Stacking Barrels
Exercise 13.2.7 Key Logging
13.3 Iterating Through an Array
Video 13.3.1 Iterate Through an Array
Check for Understanding 13.3.2 Iterate Through an Array Quiz
Example 13.3.3 Print Shopping Lists
Debugging 13.3.4 Test Average
Exercise 13.3.5 Reverse List
Exercise 13.3.6 Evens Only List
Challenge 13.3.7 Dice Roll Probabilities
Free Response 13.3.8 Dice Probability Reflection
13.4 Array Iteration with Graphics
Notes 13.4.1 Array Iteration with Graphics
Quiz 13.4.2 Array Iteration with Graphics Quiz
Example 13.4.3 Snow Storm
Exercise 13.4.4 Exploration: Changing Properties
Exercise 13.4.5 Draw a Barcode
Exercise 13.4.6 Wind Turbines
Challenge 13.4.7 Parallax Challenge
13.5 Array Methods
Notes 13.5.1 Array Methods
Example 13.5.2 Email List
Example 13.5.3 Weekly Temperatures
Example 13.5.4 Splitting Up Tasks
Exercise 13.5.5 Mutual Friends
Challenge 13.5.6 Scientific Data
14. Data Structures: Objects
14.1 Intro to Objects
Video 14.1.1 Intro to Objects
Check for Understanding 14.1.2 Intro to Objects Quiz
Example 14.1.3 Phonebook
Exercise 14.1.4 Movie Database
Video 14.1.5 Object Literals & Properties
Example 14.1.6 Car Objects
Exercise 14.1.7 Two Player
Exercise 14.1.8 Shopping Cart
14.2 Graphic Objects
Video 14.2.1 Graphic Objects
Notes 14.2.2 A Note About Objects as Parameters
Example 14.2.3 Super Bouncers
Example 14.2.4 Falling Blocks
Exercise 14.2.5 Exploration: Our Solar System
Exercise 14.2.6 Fireflies
Free Response 14.2.7 Firefly Reflection
Challenge 14.2.8 Level 1 Knight
14.3 Object Methods
Video 14.3.1 Object Methods
Quiz 14.3.2 Object Methods Quiz
Example 14.3.3 Party Ball
Exercise 14.3.4 Exploration: Digi Pet
Exercise 14.3.5 Level 2 Knight
Exercise 14.3.6 Bank Account
14.4 Iterating Through an Object
Video 14.4.1 Iterating Through an Object
Check for Understanding 14.4.2 Iterating Through an Object Quiz
Notes 14.4.3 Property or Method?
Example 14.4.4 Phonebook Extended
Example 14.4.5 Bouncing Emoji
Exercise 14.4.6 Starry Night
Exercise 14.4.7 Let's Go Birding
Exercise 14.4.8 Asteroids
14.5 Object Constructors
Video 14.5.1 Object Constructors
Quiz 14.5.2 Object Constructors Quiz
Example 14.5.3 New Person
Example 14.5.4 CodeHS Graphics are Objects
Debugging 14.5.5 Musical Instruments
Exercise 14.5.6 Level 3 Knight
Exercise 14.5.7 Bank Account Constructor
Challenge 14.5.8 Hobby Constructors
Notes 14.5.9 Advanced Extension: Prototypes and Inheritance
15. Project: Tic Tac Toe
15.1 Tic Tac Toe
Challenge 15.1.1 Tic Tac Toe: Part 1
Challenge 15.1.2 Tic Tac Toe: Part 2
Challenge 15.1.3 Tic Tac Toe: Full Game
Badge 15.1.4 Tic Tac Toe Badge
16. Project: Helicopter Game
16.1 Game Design: Helicopter
Video 16.1.1 Introduction to Helicopter
16.2 Basics
Video 16.2.1 Moving the Helicopter
Exercise 16.2.2 Moving the Helicopter
Video 16.2.3 Adding Obstacles
Exercise 16.2.4 Adding Obstacles
Video 16.2.5 Smoother Movement
Exercise 16.2.6 Smoother Movement
Badge 16.2.7 Smooth Movement Badge
16.3 Improvements
Video 16.3.1 Colliding with Walls
Exercise 16.3.2 Wall Collisions
Video 16.3.3 Colliding with Obstacles
Exercise 16.3.4 Obstacle Collisions
Video 16.3.5 Adding Terrain
Exercise 16.3.6 Adding Terrain
Video 16.3.7 Moving the Terrain
Exercise 16.3.8 Moving the Terrain
16.4 Polish
Video 16.4.1 Helicopter Image and Points!
Exercise 16.4.2 Image and Points
Video 16.4.3 Dust
Exercise 16.4.4 Dust
Video 16.4.5 More Obstacles
Exercise 16.4.6 More Obstacles
Challenge 16.4.7 Helicopter Extensions
Badge 16.4.8 Helicopter Badge
17. Final Project
17.1 Project Prep and Development
Notes 17.1.1 Project Introduction
Free Response 17.1.2 Planning and Design
Pseudocode 17.1.3 Pseudocode
Challenge 17.1.4 Write the Code!
Presentation 17.1.5 Present your Project
18. Final Exam
18.1 Final Exam
Final 18.1.1 JavaScript Final Exam Pt. 1: Multiple Choice