MassDosage writes: "I first heard about the Scratch programming language a few years ago and the idea of a simple language designed to teach kids to program in a fun, new way has always appealed to me. For those of you who don’t know, Scratch was developed by the wonderfully named “Lifelong Kindergarten Group” at the MIT Media Lab. It’s a programming language that allows programs to be built by dragging, dropping, configuring and combining various blocks that represent common coding concepts such as if/else statements and while loops. Scratch also provides tools for doing simple animation, playing audio and controlling sprites. The idea behind it is to make programming simple, fun and accessible to first time programmers so they can understand the key concepts without first needing to learn complex syntax which can come later when they move on from Scratch to other languages. It has been very successful and there are literally millions of Scratch programs freely available from the Scratch website and many others.

The Super Scratch Programming Adventure book has recently been translated from the Chinese original and is in keeping with the Scratch ethos of bringing programming to a new generation of programmers. It is hard to tell what the age group for this book is as children have such varied technical skills but I would say it’s best for relatively computer savvy youngsters who know the basics of computing and are comfortable with a mouse and keyboard and know how to drag, drop, open, save, cut, paste etc. It should be suitable for ages from 8 up to young teenagers but even those a bit older looking to learn programming could find it useful while younger children might also be able to get something out of it if guided by someone older.

The book starts of with a bit of background and points the reader to where they can freely download and install the Scratch application which is used to create Scratch programs. This is available for Windows, Mac and Linux and was a breeze to install on Ubuntu Linux. All programming is done via a GUI to avoid having to deal with typos and syntax errors. The Scratch environment is fairly simple and intuitive and easy to get started with. A downloadable zip file accompanies the book and contains skeleton programs with sound and images that are used for creating applications as well as fully complete programs which can be used for reference if you get stuck creating your own versions. The zip file also contains a “Getting started with Scratch” guide that is a very useful prelude to the book if you’ve never used Scratch before and covers the main concepts and tools that are used in the book itself. It is important to note that this book is not a manual for Scratch and doesn’t provide exhaustive coverage of what Scratch can do or how to use all of its features. Super Scratch Programming Adventure takes a “learn by doing” approach by guiding you through the creation of a few programs and leaves you to figure the rest out yourself. Given the target audience this makes a lot of sense — most youngsters would much rather build some cool applications right away than wade through lots of dry documentation first.

Super Scratch Programming Adventure is divided into various “stages” (computer game speak for “chapters”) that are linked by a colourful cartoon adventure story. Each stage guides the reader through creating a computer game from... err... scratch and teaches them some fundamental concepts along the way. Later stages build on lessons learnt earlier so they should be read in order and the book steers one towards this with the cartoon linking what you do in the various stages together as you build games which in turn become part of the story.
The early stages start off showing how to use sprites and move them around and how to use the palette to build up programs and attach behaviours to things. Later stages cover user input, broadcasting and reacting to events, flow control, collision detection, variables, animation and audio with each stage harder than the previous one right up until the final stage which involves creating a fighting game with numerous sprites and interactions between them and the user. I found all the games fun to build and use and could definitely see the distinct lessons each one was designed to teach.

The learning curve is a bit higher than I expected and there is little hand holding, at some points you just have to look at the included code blocks and figure out yourself how to build them up. It’s not always easy and readers will need to be fairly computer literate and able and willing to figure a fair amount out on their own but ultimately this is probably a good thing as explaining everything in minute detail would take a lot longer, be quite boring and would lead some to just blindly copying things instead of being forced to understand what they are doing. I could imagine that some young readers might find this a bit challenging so it’s probably a good idea to have a computer literate adult around to help out if they get stuck. The included complete source for each game also helps although looking at this does feel a bit like cheating. Each stage ends with suggestions for further programming on ones own and I felt that these are really the key for this book to succeed as a learning tool as these make one think about and apply what was just read. Again I think this would be a good point for a parent or someone older to step in and encourage a younger reader to build on what they’ve learnt and suggest creating something new for themselves. The book contains plenty of pointers to online resources where readers can learn more, ask questions and share their creations with others.

I would definitely recommend Super Scratch Programming Adventure for those eager to learn programming but be aware that to really get the most out of it it’s probably best if someone who already knows how to program is around to read along, help out and encourage further creation outside of what the book shows. There is a wealth of Scratch related information on the internet but this book provides a good way to get started by demonstrating how to build fun applications and hopefully this in turn will encourage readers to move on to creating more on their own.

Full disclosure: I was given a copy of this book free of charge by the publisher for review purposes. They placed no restrictions on what I could say and left me to be as critical as I wanted so the above review is my own honest opinion."