Programming for kids

I think there’s a part one to kids programming from a couple of years ago, but I cannot find it anywhere in the archives, so maybe it was a discussion in the comments section of another blog.

Computer programming is fun and extremely important.  Even as a social scientist, having a modicum of programming knowledge makes life a ton easier.  Doing statistics requires data cleaning and statistical programming knowledge.  Just knowing what is possible — being able to think in a way that allows programming to make life easier– means big efficiency improvements.  And that’s just social scientists.  Engineers and scientists often have to deal with much more complex coding structures.

Added to that, having a good background in programming also means that your code is much easier to read, understand, and to pick up later and figure out what the heck it was you were doing.  I can usually tell when someone has programming background because they do useful things like comment their code or put carriage returns between sections or indent their code properly when doing loops.  I *wish* more of the people I work with had programming backgrounds!  (She says, after spending a day putting in comments, carriage returns, and tabs so as to be able to read a program before adapting it for this year’s dataset.)

Anyhow, our first foray into programming a couple of summers ago was to try out Scratch.  Scratch was a lot of fun, but it’s more of a toy that teaches some programming structures (ex. loops) than actually teaching programming technique.  I know there’s a lot of thought that playing is the right way to go with programming, and I’m not against playing at all, but there’s a *lot* to be said for getting good technique in while you play.

So now that DC1 is 8 and has spent a couple of summers playing with Scratch, we decided to try something more systematic in.  After some amazon searching, we settled on Python For Kids: A Playful Introduction to Programming. We didn’t want to make this a chore like DC1’s homework books (which sometimes cause angst) and we didn’t want a time limit like piano practicing, so we just said ze has to do some each day, but as much or as little as ze wants.

So far it seems to be working out.  It takes the best parts of Logo (remember the turtle who made boxes?) and combines them with Python.  DC1 is pretty excited about it, and occasionally asks DH for help.  If you don’t have a professional programmer in your house, the same publisher also makes a Python book for parents, Teach Your Kids to Code.

Do you use programming or programming techniques for your work or hobbies?  Any suggestions for introducing people to coding?