Boy scratches Python…

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.

Advertisements

6 responses to “Boy scratches Python…

  1. botchagalupe

    Have you looked at Alice? I have two boys and they have been a little reluctant to really engage in the programming thing and I havn’t pussed it for fear that if I push to hard …

    However, they love StoryTelling Alice (STA). With STA, they have clearly learned the concepts of iterative programming, encapsulation, and general object programming.

    I will check out Pygame… thanks..

    btw, I love your blog.

    johnmwillis.com

  2. @John

    Yes, you’re right, letting kids explore programming at their own pace seems to work best. I’m going to play this by ear, maybe a hour a week this summer, see what happens, but so far so good, especially when I told him about this, http://www.toolness.com/wp/?p=52 ; being able to create flash games and share them with his friends via his blog, now that really got his attention!

    I wasn’t aware of STA, looks like it might be a good alternative to Scratch for my daughter, who unlike her brother hasn’t shown much interest in Lego games (such as Lego Loco) which were the vector that led him to the very Lego-like Scratch (which Lego sponsor).

    Keep up the excellent “clould” coverage over on http://www.johnmwillis.com/

    Tom

  3. Looks like I’m not the only person who thinks Python plus PyGame would make a good kid-friendly teaching platform, see http://www.manning.com/sande/

    Tom

  4. My 8-y.o. daughter enjoys playing with Scratch. I’ll have to see if she figures out PyGame.

  5. @Chui Tey

    Scartch is “enough” for those kids who just need to get their heads around programming (which I would think is the majority). For those who have the “programming itch” (a minority, maybe 5 max 10%) then something like Python is a good next step.

    Tom

  6. Guido von Rossum talked about his “preference” for Scratch over the new Google programming language called Go. Your post was a good reminder to follow-up. Thanks for your post, Tom.

    If your son needs data persistence for his Python objects, please show him http://yserial.sourceforge.net — it’s a dead simple single module: just import, create an instance I, then I.insert, then later I.select (or I.fifo for a queue) —
    all the complex protocols are hidden in the background.

    I really would like to encourage kids to learn Python. The interface should be very easy to use, yet general for almost all practical purposes. Good luck on your father/son projects!