I’ve written before about Scratch, a teaching platform developed by MIT to introduce kids to the art of programming. My son has been playing around with Scratch for over a year and although he still enjoys it, he’s showing signs of needing to move to the next level, a ‘real’ programming language. I decided that Python, being one of my own favourite languages, would be an ideal next step, particularly when I discovered PyGame, a Python library based on SDL.
Using Pygame with its similar problem domain to that of Scratch would, I figured, make the transition to a grown-up platform easier, and so it has; concepts such as sprite, coordinates, animation etc. are common to both. I took him through the “Pummel the Chimp” tutorial, expecting his young eyes to glaze over within 10 minutes, but no, a hour later he was still engaged and learning. Why? He already has a deep understanding of programming, particularly object oriented programming, all thanks to Scratch.
Most of this knowledge he acquired without any help for me, I simply introduced him to Scratch and explained one or two concepts (variables and messages/method calls) which he initially had trouble with, the rest he picked up from looking at other Scratch projects and from writing his own.
So if your kids (or even you) have an itch to learn the essence of programming in a fun and effective way, then Scratch it.