Teaching computer programming to my kids

My two eldest kids are now 12 and 9 years old, and not only are they hooked on technology (like most of their peers), but they’re also voracious readers. And they’ve expressed an interest in learning about computer programming. So, naturally I started looking around for books to help them get started. 

A couple of promising ones I found based on reviews at Amazon were:

Super Scratch Programming Adventure! (for the 9 year old)

Python for Kids: A Playful Introduction to Programming (for the 12 year old)

Scratch (scratch.mit.edu) is an excellent method of teaching programming concepts to younger kids, and my 9-year-old daughter has been loving the presentation in the “Super Scratch Programming Adventure!” book.

The “Python for Kids” book is decent, but I found that it required a lot of hand-holding to get my 12-year-old daughter to follow along. I was a bit disappointed with that one.

So I looked further and found an excellent couple of books that are available for free under a Creative Common license:

Invent Your Own Computer Games with Python

Making Games with Python & Pygame

(And they’re also available for Purchase on Amazon and get good reviews there too.)

What I really like about these two books is that each chapter begins with an example game to better illustrate the topic of the chapter. In the “Python for Kids” book, my daughter read the first few chapters and still didn’t realize the concept of input/output and was wondering what the purpose of learning the concepts was. In Invent Your Own Computer Games With Python, all of that is much more clear. Kudos to the author Al Sweigart for a great job.

So the two girls are on the road to learning how programs work. They’re also interested in “robots”, so the next step (after they’ve completed the books) will probably be to get a LEGO Mindstorms NXT 2.0 set to explore programming of hardware. The nice thing about Mindstorms is that there’s a Python driver/interface that will let them leverage whatever they’re learned about Python and apply it to controlling hardware. Beyond that, I will let them explore Java and see if they find anything interesting within that.

But it’s great to see that there are lots of resources out there now to get kids to understand how computers and software really works.

I’ve come across a couple of good guides on teaching programming to kids:

I Want To Teach My Kid How to Program (from Al Sweigart, mentioned above)

Young Developer – Visual Programming Software Tools (a guide from Oracle, geared mostly towards Java)

If you’ve been down this road before with your kids, I’d love to hear how it turned out and what they learned from it.