Scratch (free) is a Web application that teaches basic programming concepts in a visual way. Designed by the Lifelong Kindergarten Group at the MIT Media Lab, Scratch is designed for kids from eight to 16 years old, but its easy-to-use interface means anyone can use it to learn how to program. If you are interested in getting your kids to program—or if you are ready to dip your own toe in the coding waters—Scratch is the intro-to-coding Editors’ Choice you need to check out.
Getting started is as simple as loading the Scratch website using a recent browser (Internet Explorer 7 and later, and most versions of Chrome and Firefox). The site requires Adobe Flash Player version 10.2 or later, as well. Scratch is hard to use on smaller monitors, as it is optimized for 1,024-by-768 screens or larger. If your hardware is too old, or your screen too small, consider using Scratch in offline mode (more on this later).
Learn to Program
When you load the Scratch website, you see galleries of programs created by other users. Click a thumbnail to see a description page, which provides coder-provided information about each program. You can play them, share them, or—best of all—”see inside.” This lets you see how the coder created the program. It’s a great way to learn how other people program and to pick up tips on how to build things.
If you’re ready to get started, you click the Create link at the top of the screen to enter your own studio or workspace, a gray box to the right. Here you build your programs using coding pieces, each one shaped like a jigsaw puzzle piece and representing a coding element, such as move 10 steps, show, and say “hello!” The pieces are color-coded by type (motion, looks, sound, pen, data, events, control, sensing, operators, and more blocks) and organized by menu. You can connect the pieces in whatever order you want to build your program.
The execution window is a white area, where Scratch, a cat sprite, performs the actions specified by the program. Clicking on a green flag makes the program run, and the cat reacts accordingly. In the screenshot below, the program had the sprite move 10 steps, say “hello,” move another 10 steps, and then think “hmm.”
Once you’ve saved the project (for which you need to create an account), you can either keep it private in your account or share it publicly on the Scratch library. There are also options for sharing the project on Facebook and Twitter, as well as embedding it on a website. It would have been nice to have a link that would automatically email the project—but that’s a minor quibble, since it’s just a matter of copy-pasting the URL into an email.
Other Ways to Scratch the Programming Itch
The Scratch website doesn’t really work well on iPads, so, if you’d prefer your kids to work on a tablet, I recommend Hopscotch (free), our Editors’ Choice for iPad kid-coding apps or Move the Turtle (free), instead.
Hopscotch’s interface is very similar to Scratch’s (with a few limitations, such as the inability to set variables), so it’s definitely a viable (and fun) alternative. I have yet to find an Android equivalent, but I am on the lookout for one.
Personally, I would rather have the kids use a laptop or a desktop than a tablet, but everyone has different comfort levels and preferences. If you are concerned about the kids potentially messing up something on your computer, you can always look into Doudou Linux (free) to create a live USB image that they can use to get online.
If you don’t want your kids to be online so much, you can also download Scratch Offline Editor (version 2.0 is the latest, but older machines may need to use version 1.4). The version works on Macs, Windows, and some versions of 32-bit Linux. Scratch uses Adobe AIR, so make sure you download and install that first before installing the software. The offline editor looks and acts just like Scratch on the Web, and you can even upload your projects to the online gallery for other people to play.
Bottom Line: Scratch makes teaching kids programming as easy as putting together a jigsaw puzzle. The coding elements are presented as blocks that snap together, and it helps teach kids to think like coders.