In trying to break a dad-inflected addiction to the Nintendo DS for my six year-old, I just came across the Scratch project from the Lifelong Kindergarden lab at MIT. If you've ever wanted to teach kids the basics of programming in an engaging way, get over there and pick up a free copy of the Scratch environment right now. Scratch is what Logo meant to be but couldn't afford due to the resource limits of those early PCs. And the hour and a half we spent playing with it this morning was more fun than Mindstorms, OLPC, or any other such endeavors.
There are a lot of good things to be said for Scratch. Essentially, it is a graphical environment for animating sprites (shapes you draw on the screen with a primitive Paint-like application) along with sounds and effects. Much like Lego Mindstorms, the programming is done by snapping blocks together, except that unlike Mindstorms, the Scratch blocks seem to be able to stretch better to encompass the full power of control structures, variable assignment and all of those other "pesky programming things" that often leave the toy environments feeling like just that— toys.
The editor is very intuitive and relatively bug-free. Which is amazing considering that it is built on top of Squeak— a Smalltalk environment that I've spent the last two years playing with without really being able to get my head completely around. I suspect that a lot more is possible than the simple stuff we did this morning— and even then we got basic keyboard-controlled sprites along with effects, collision-detection, and some basic sound effects— all without reading any documentation and with zero prior experience. I spent quite a bit of time playing with a previous Squeak-based environment that ships in the OLPC, eToys, which I found horribly unintuitive.
But it doesn't stop there. The Scratch team has apparently been paying close attention to the whole "Web 2.0" thing because along with the programming environment, they've built a community site which contains all of the best collaborative features of a user-generated content repository. From the one-click upload within the Scratch environment, the Java applet that lets anyone embed their "scratches" (as the programs are called) into any webpage, to a tagged and filtered site for people to leave comments or download each other's scratches, the end-to-end experience leaves you feeling like you are part of something much bigger than just another attempt to teach programming to kids.
The only thing that surprises me about Scratch is how little attention it seems to be getting, especially given that they are local to Boston. Why anyone writing about the real innovation coming out the ashes of Web 2.0 isn't featuring these eternal kindergardeners (see this video to see how much they really do look like happy kindergardeners) is beyond me.
One final note: I'm not sure that "Mario fights the Alien" (our first game) broke the DS addiction but it was really special to see how, after telling me that what we'd done was "lame" and "embarrassing," my six year-old's face lit up when his little brother decided that the game was the bee's knees and spent the next 25 minutes engrossed in it. Nothing like that creative high, and it's 100% thanks to the work of the Scratch folks that this is possible with such a shallow learning curve.
(Go check out our game by clicking on this image)