Author: Al Sweigart
Publisher: No Starch Press
Audience: Kids and adults
Reviewer: Lucy Black
A book that makes Scratch exciting. What more could you ask for?
Of course, we all know that Scratch is exciting anyway but if you are struggling to find ideas to make it exciting then Al Sweigart promises to teach you to program by making cool games. The big problem is that what beginners think of as a cool game has become increasingly difficult to create using simple code. Don't expect some really impressive game that is going to absorb you or your pupil for its own sake. In truth these games are cool because you put the effort in to create them and this is what the book is all about.
The first thing to say is that I think the cover is great and it's a shame the character doesn't appear in other illustrations throughout the book. I also liked the way the programming blocks were drawn as if they were real functional gadgets. When you get inside there is a lot of reading so be prepared for it. There really isn't any other way to learn how to program.
After a first chapter introducing Scratch, specifically Scratch 2, the first game gets going with an animated art project using some sprites. Then comes a Maze Runner where you learn how to stop a sprite running through walls. The next game explains how to simulate gravity and bounces. To demonstrate how to create a "polished" game we then have a version of Brick Out. The next three games are the well known Snake, Fruit Slicer a version of Fruit Ninja and finally Asteroid. The book finishes with an advanced platform game where "advanced" means adding "AI" controlled enemies.
Overall, the book is well written, full of humor and puns, and the explanations of how things work are good. It also generally implements things in a sensible way and you aren't going to learn any bad habits or methods from the book.
What surprised me the most is that the book really doesn't focus on teaching the reader programming ideas. For example, whenever I have taught Snake I have been able to use it to explain the idea of a queue - the snake head joins at the tail of the queue and the tail leaves from the head of the queue. In Scratch this isn't possible because the snake is built by defining sprites.
What this book does is to get you to program by explaining the way in which common techniques you encounter in games are implemented - how to bounce off a wall, how to stop a sprite passing though a wall, how to simulate gravity and so on. These are not so much programming techniques as specific game techniques. What we have to hope is that by programming these special topics the general ideas of programming are learned by osmosis. If you are sufficiently practiced then presumably you do pick up the ideas and have fun along the way.
This isn't a book that will suit every teacher because it doesn't make a fuss about programming ideas such as objects, stacks, data structures and so on. It is motivating and it is exciting, as long as the excitement is in creating something of your very own. If you think you fit into this category then the book is highly recommended.
Learn to Program with Scratch
Super Scratch Programming Adventure!
Scratch Programming In Easy Steps
Cool Scratch Projects
Articles on I Programmer
A Programmer's Guide to Scratch 2
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.