Super Scratch Programming Adventure: Fun introductory programming book

NewImageScratch is a graphical programming language for kids that was designed at the MIT Media Lab. To write a program in Scratch, you connect colored code blocks together. The neat thing about not having to type in lines of code is that you don't have to worry about spelling errors. Also, the blocks fit together only if they make computational sense, which helps beginners from making frustrating mistakes. (The inevitable bugs that do occur in Scratch end up being the interesting and educational kind). Scratch is free and available for most operating systems.

Super Scratch Programming Adventure is a comic book style introduction to Scratch that reveals the power of this deceptively simple programming language. It's possible to write sophisticated arcade-style games on Scratch, and as you work though the chapters of Super Scratch Programming Adventure, you'll be surprised at what the software is capable of. The book is written in the form of a story, in which cartoon characters are faced with increasingly dire predicaments that require Scratch programs to get out of. It's a fun way to learn how to program Scratch, even for adults.

NewImageMy 9-year-old daughter loves Scratch, and she's learned a lot about sprite animation, variables, applying sound effects, interface design, and more. As Mitchel Resnick, the director of the MIT Scratch Team writes in his introduction, "As young people create Scratch projects, they are not just learning how to write computer programs. They are learning to think creatively, reason systematically, and work collaboratively [people can share their Scratch creations at MIT's Scratch site] -- essential skills for success and happiness in today's world."

The book also has a brief introduction to the PicoBoard, a microcontroller board that interfaces with Scratch so you can write programs that respond to light, sound, and other inputs. I'm going to buy a PicoBoard, because it looks like a lot of fun!

If you have a kid who likes video games, this book is a fine way for him or her to learn how games are created. I also recommend the book for adults who want to have creative fun with their computer.

Super Scratch Programming Adventure


  1. Scratch is brilliant–it’s easy to make little interactive toys and stories with it, but it’s actually a proper structured programming language. Anyone who started out with Scratch could transition naturally to a “real” procedural programming language like Python or Javascript.

    In many ways it’s better than the BASIC that I grew up: it uses modern concepts like event-driven programming; it’s inherently structured with real constructs for loops, and Scratch 2.0 is adding procedures.

    I should add: most importantly, it makes it (relatively) easy to start making something and use a computer to express yourself. I love love love anything that bridges the gap between the world of programming and the artistic, creative world. Computers are interactive in a way nothing else is and we’re barely scraping the surface artistically.

    1. I tried to get my son started on Scratch when he was about eight years old. He got to the point where he could do simple animations and didn’t progress from there. But he is hooked on minecraft and I would love to see a version of that game where the blocks were all built up from more fundamental components (materials, conductors, switches, etc) and players could make their own block classes on the fly. I think that sort of 3D world simulation may be more intuitive for kids these days.

      1. Yes! Although Minecraft has redstone, which can make surprisingly complex circuitry. Personally I wish Minecraft had more physical mechanisms–it seems it would be more in fitting with the low-tech universe.

        Mojang’s next big thing is 0x10c which sounds like it will build on the same kind of construction ideas from Minecraft but with an underlying computer system. It’ll be interesting to see how it turns out–Notch has suggested he’ll be developing it the same way as Minecraft, where pre-orders get you access to the development build very early.

        1. I introduced my seven year old to Lego’s NXT language (partly on the basis that he could see a physical-world result) and if Modkit micro develops as it promises we’ll pursue that. He’s either interested or he’s humouring me, but his passion is for Minecraft and the redstone-facilitated machines he can build.

          I’ll definitely be looking out for Mojang’s next big thing and i hope it’s something we can share, but I suspect it’ll be him explaining it to me.

      2. If he’s a good enough reader, you might check out Code Hero. It’s not quite the same as Minecraft, but it fits the “coding with a video game” thing you’re looking for. It’s pretty slick, too. 

  2. Seems to me like at least 60% of teaching kids to code with a language like Logo for example is to learn the importance of paying attention to details, spelling things properly and learning logical and mathematical syntax. This sounds more like a game to me. A fun, smart, engaging game, but still just a game. This is a concession to instant gratification culture, it’s giving in and therefore falling short from an educational standpoint. Kind of like the equivalent of letting your kids eat chicken fingers and hot dogs every night instead of teaching them to eat real food, so in order to feel better about yourself you get the organic kind. Or teaching them power point instead of how to write an essay. With a pen.

    1. An essay is also just a game. If we went back to the days before Montaigne people would be like “just write about whatever??? What happened to the trivium and quadrivium

    2. I agree, literally everything should be totally unenjoyable drudgery, all the better to beat our breasts about why kids refuse to engage with their education when we’ve worked so hard to make it so miserable. 

    3. I’m in agreement with you.  And it’s not a game that everyone enjoys/wants to play or is even good at.  I learned Pascal, QBasic, and COBOL back in highschool.  They were all fine languages, but at the same time I tried my hand at straight Assembly.  Honestly the concepts weren’t the hard part.  It was the fact I needed to create a mental picture of what everything did, where it went, and what it connected to.  If I had a big fold out poster of memory and registry addresses, hardware addresses, ect. I’d been a lot better at it than I every got.

      I agree that sometimes I like the quick and dirty aspects of some programming languages to be able to turn an idea into a working program in quick order.  But then that efficiency part of my brain kicks in and nags about how certain things could be faster…

      (I use a free video conversion program MeGui which is built around .Net.  Great program, but man it takes forever to load (since it’s dependent on .Net  Once it’s up and running it’s quick enough.)

      1. You choose your tools according to what your needs are. Pure Assembly is seldom the right tool.

        And if that .net program takes forever to load I would bet it has nothing to do with .net but that it is instead spending its time somewhere else.

    4. Is starting reading with Dr Seuss “a concession to instant gratification culture?”

      Most programming is built on abstractions and lower-level languages. Syntax errors are frustrating, and Scratch designs around them. The logical constructs are still there, and I’d argue that those are the most important skill in programming.

      1. Yeah… programming is programming is programming. Once you know how to program in any language, and Scratch seems to qualify as such, it’s pretty easy to learn another one. Learning the concepts is the hard part.

    5. “learn the importance of paying attention to details, spelling things properly and learning logical and mathematical syntax.”

      Um… not really… programming is about taking a problem and breaking it into pieces that you can solve. It’s about logical thinking and problem solving. Especially in the beginning programming needs to be fun (because it is!) and something you can quickly see the results of what you are doing.

      “it’s giving in and therefore falling short from an educational standpoint.”
      What educational standpoint? They are learning programming concepts, aren’t they? Oh… you mean learning should be boring, and if it isn’t it’s not proper learning. Like healthy food should taste bad and excercise should be all about pain. Yeah, got it!

    6. Flat wrong.  Syntax and detail spelling are the least important programming skills, and change with every language to boot.  Scratch teaches the most important programming skills.

      (To agree with you, I’d have to arrive at the idea that SpaceChem doesn’t require programming skills.  Which would just be bizarre.  It’s a computer game, yes, but it’s also got some of the trickiest programming challenges I’ve run into in a long time.)

    7. I think the point Mitch Resnick and his team at MIT wanted to make with an easy language for kids is that even very young kids can be creative problem solvers using Scratch, even when they are too young to type out long lines of code. 

      I’m a huge fan. And, Mark, if you are buying a Pico board, check out the LEGO WeDo controls, too. 

  3. I’m about to start a BSc degree at the Open University in the UK and they use Sense (a *slightly* updated version of Scratch) to teach the basics of programming module. It’s pretty cool. You get the micro controller and a few bits and pieces to get going with it as part of the module materials, and the obligatory massive programming manual of course. Looks really interesting.

  4. It’s a shame there are no girl characters. I almost sent the link for my niece, but there’s no way she would ever be interested if it looked like it was a thing just meant for boys. And it does.

    1.  It’s certainly a reasonable expectation that authors of works such as this would include some female characters, but hopefully your niece can learn to appreciate things even if they aren’t aimed toward girls.

      It would be a good teaching moment, on how not to swallow all the B.S. marketing that products are either  girl-things or boy-things, and never anyone-things.

      Find out her favorite cereal. Lucky Charms? What if the General Mills decided they could make more money by marketing Lucky Charms in a way that tries to make people think it’s FOR BOYS ONLY? Would she stop liking it? Why or why not?

      Send the book to her anyway. If she balks because it’s “for boys” just point out that the author was stupid to forget that girls program, but that it’s otherwise a cool book.

      1. Well, yes, but the niece in question has clearly realised that it isn’t a cool book in any sense if it fails to admit she even exists, however neat the programming hints are.  If she gets it anyway, she’s also supporting, just that tiny bit, a world in which women are assumed non-programmers.  Which is stupid in general, and also a really bad career move if she wants to grow up and be a developer.

        1. I can understand the distaste for supporting that discriminatory no-female-programmer world.

          If there are introductory programming books that are geared toward girls or are unisex, by all means, buy them!

          But if she wants to grow up and be a developer and the choices are book-for-boys or no book at all, it would be better to go with the book-for-boys.

    2. Agree. My niece, 9, loves girls-solving-problems books, is lukewarm on only-boys-solving-problems books. She is not a subscriber to “girl books are for girls, boy books are everyone”- she knows when something wasn’t written with her in mind, and casts it off as boring. I don’t blame her.
      When boys are treated as the default humans, and girls are a separate pink-tinged species, and intro to programming books just perpetuate that trend, both girls and boys are getting the message that this isn’t an activity for girls, and that girls who are interested in this stuff are unusual, different and not-very-girly. One book, on it’s own, doesn’t create this narrative, but it contributes neatly to a whole.The landscape for this is not neutral. Women and girls are generally absent, invisible or reduced to decorative in nerd & programmer culture (see: many currently raging internet arguments, and my entire career of being assumed to be secretarial staff, when I am in fact a developer). This would have been an easy and obvious place to help shift that, with kids (both girls and boys) first exposure to programming, and it’s a pretty glaring oversight that they haven’t taken the opportunity.

      1. The main (and only human) character is Mitch Resnick; the creator of Scratch. Every other character is an alien creature.

    3. Do you mean no girl characters in  the “Super Scratch Programming Adventure” book, or in Scratch itself? Looking at the Amazon preview, the only *human* character in the book is a younger and less-beardy version of Dr. Resnick, the man who started the Scratch project at MIT. The gender of the other characters is, uh, hard to determine. (No primary or secondary gender characteristics as far as I can see…)

      In Scratch itself, the cat character is the default sprite –  and their gender isn’t specified in the programming interface in any way. I’ve taught Scratch to over a dozen school classes (Grades 3 – 6) and I’ve never seen it labeled as a “boy thing” by female students. (Aside – I’ve usually introduced it to students as a “digital storytelling” environment at first, and told them they were programming after they’ve gotten into it. This strategy is based on research a colleague of mine did about how adolescent girls shift their opinions towards tech as they get older.)

      Scratch comes with a decent library of both gendered and non-gendered sprites, and if a student really wants a specific female/male/transgendered character, they can import their own sprites and easily create new characters.

      In conclusion: I sincerely hope you send a link your niece’s way – in my experience, girls have enjoyed using Scratch just as much as boys.

      1. And here’s an Amazon review from a seven year old girl:

        Review from a seven-year old girl September 9, 2012 By Matthew Miller Amazon Verified Purchase (The following review is by my daughter.) It’s cool. I like like how the book makes it easier to figure out how Scratch works. I like how it has cartoons at the beginning of each stage. I think everyone should buy this for their kids if they have enough money for it. Anybody can get Scratch because it is free.

    4. The main (and only human) character is Mitch Resnick; the creator of Scratch. Every other character is an alien creature.

    5. Thanks for the comments! I agree that it is nicer for girls to enjoy a book which features both gendered characters.

      In fact, Fabu (the name was created from the word “fabulous”) was the girl character in my mind when I wrote the book. It was my stupidity not mentioning that in the story. I just hope that won’t hinder too much to the readers.

  5. Hmmm,  I think National Instruments  (LabView)  may want a word with these folks… .   In all seriousness, the concept of connecting icons to create a program is not all that uncommon.  There’s a lens/raytrace app somewhere out there that lets you drag optical elements around to create your system, for another example.

    1. LabView was hardly the first system of this sort — it first came out in 1986, years after things like ProGraph existed. The idea of creating a program by manipulating a graphical flowchart goes in and out of favor every few years — probably because people learn that a system of this sort ends up either being a toy or just as complicated as a traditional programming language. 

  6. I’ve been teaching Scratch once a week at my son’s school for a few years, and it works. I love the part where, twenty minutes in to the class, a room of fifth graders is completely silent, absorbed in making their own stuff.

  7. In similar vein, there’s also “Hello World”, which is available as e-book too. I’ve started using it with my 13-year old son and 11-year old daughter. We went through the first chapter so far, but my daughter is very enthusiastic and keeps asking me to find time to go on with the next one. FWIW, it teaches programming in Python, it feels very accessible and fun.

Comments are closed.