Monday, November 05, 2012

It's About Time This Kid Learned To Program - Embracing Scratch

OK, I admit it - I've been feeling a bit of geek dad guilt over our 7 year old and his computer hacking skills. Mainly, I've found plenty of fun activities for us to work on -- from paper airplane building to stuffed animal architecture. But all my attempts at doing anything on the computer beyond basic games have been a bust.

Don't get me wrong - he's amazingly adept at the mechanics of using a computer. He occasionally does math homework on the computer, and is a whiz clicking around. However, what I really want to teach him is that the computer can be used the same way he uses other tools (read: crayons, tape and whatever else can scrounge): to build stuff. In other words, I'd like to teach him to program.

Now, part of me is perfectly aware that the best traits of a programmer (like the ability to break down problems and finding and fixing bugs) are ones that he can learn and practice without a computer. But who am I kidding? As a programmer, I've got to at least try to teach him some basic skills.

But where to begin? Personally, I have an affinity for small and simple systems. That simplicity would make for an easier learning curve, right? Wrong. Sure, logo is a beautiful and simple language, but how can line graphics pull in the interest of a 7 year old? Not only that, but concepts like "turn 90 degrees" are totally foreign to him. Heck, at 7 he's still not sure what a negative number is all about. As a student exploring geometry, Logo may make heaps of sense, but as an introduction to programming, it's not going to work.

Same goes for small basic and my beloved Racket. Sure, for middle school or high school kids, these are no a brainer, but not for an elementary student.

Luckily, the insights above are nothing new, and there are those who have already figured out a solution. One approach: Scratch by the folks over at MIT.

Scratch allows programming through a snap together model. Kids (or in my case, parent and kid) can drag various behaviors and controls onto a canvas which in real time produce a program. Visual programming is nothing new, but Scratch manages to nail it for kids. The environment comes equipped with a healthy library of animation sprites, sounds and other multimedia features. Forget Hello World and Fibonnaci Sequences, Scratch makes it effortless to be a DJ and an animated storyteller.

In fact, the line between program, game and art creation are pretty much non existent in Scratch.

The Scratch team has gone further than developing a slick programming environment, they've developed a community to tie it all together. You're encouraged to browse through the projects, pick one you like, download it and tweak it. The community is a smart idea and means that you never need to run out of ideas of what to build.

For now, our little guy is most interested in hearing all the different sound clips that are available and jumping up and dancing to them. But that's OK. He's learning that he can control the computer, instead of the other way around.

Here's the first project we put together. I did most of technical work here, though he made the artistic decisions, including naming it "Animal Parade." Try pressing the A, S, and D keys to get the animals to "sing" along.

Scratch Project

The fun part about Scratch is just how quickly you can make an entertaining creation. Go head, give it a try. One tiny bit of advice: spend a few minutes getting up to speed before you attempt to show your kid, that way you can be productive right out of the gate.

No comments:

Post a Comment