Module one is programming with Karel. Karel is a dog that only knows how to move, turn left, and place tennis balls in his world. You can give Karel these commands to instruct him to do certain things. We use Karel to show you what it means to program, and allow you to focus on problem solving.
Now, your graphics will come to life. You will learn how to make objects move around the screen. You will also learn how to let the user interact with your program with the mouse. At the end of this section, you will program your very own video game.
We introduce lists/arrays, maps/objects, sets, and grids. These are the essential basic data structures that any program will use.
You now have the tools to make amazing games. This module walks you through the creation of the classic Helicopter game one step at a time.
Functions and Parameters Practice
Functions are the critical building block of any program. To be able to use functions, you want to make sure you fully understand parameters, return values, and how to create your own functions. That is what this practice module is for.
It can take some time to learn all of Karel's tricks. Brush up here with some extra Karel practice problems. These reinforce all of the fundamental concepts introduced in Karel, including commands, functions, loops, conditions control structures, and problem decomposition.
A set of all the trickiest Karel puzzles for you to solve
More Graphics and Animation
The entire collection of all of the Karel videos, examples, exercises, and challenges on CodeHS. They are grouped by topic and sorted in general order of difficulty.
Learn HTML and CSS to design your own web pages! HTML sets the structure of your web page and CSS sets the design of your web page.
In this module we discuss how to grade different problems on CodeHS, and tradeoffs between different solutions.
This module has helpful videos explaining how to use different parts of CodeHS.
This module shows you examples of things that you might want in a game you are making. This will give you the tools to take what you've learned and apply it to make awesome games!