How to Teach Programming to Kids (A Review)

2008 December 13
by Chris Bell

I’ve got a bunch of different blog posts related to programming and kids rattling around in my head, but can’t seem to get them out yet as I’m doing some fact-finding to make sure I’m citing studies with real data. In the meantime, I ran across this article written by R.L. Shankar on Chris Pirillo’s website that was just published and it really hits on some of the points I wanted to cover without any discussion of integration with curriculum.

The article is really a how-to that explains what kids should first be exposed to and so forth. He first covers Scratch, which is an excellent introduction to programming for students in primary and elementary grades. By using drag and drop blocks, students build statements for their characters and then test their actions. It’s a great introductory tool and teaches them “If, Then” statements and other logical expressions. It’s simple enough for teachers to learn and the best part is it’s free! For those who might think this oversimplifies programming, I’d suggest you download the software and give it a whirl.

Shankar then goes on to introduce Phrogram, which he recommends for working with students from 10-14 years old. I’m not familiar with Phrogram, but he makes a solid argument for picking it up. It’s not open source, but is less than the cost of a video game on the PS3 or XBOX 360 format ($44.95). If you’re unsure, you can pick up a demo version for free and give it a trial run. I’m going to be doing that myself and seeing how things go. Apparently you can also write apps for the XBOX, but I’m not sure about XBOX 360. I’ll be sure to report back on my experience.

The author also mentions Greenfoot for this age range. This is another one that I am unfamiliar with. It’s based on Java and from my inspection of the site it looks like it’s a really viable tool for kids in the 10-15 age range. Below you’ll find a screenshot of the programming interface. As you can see, it’s a pretty basic set up which definitely makes it easier to teach. It’s also object-oriented and it appears the the concepts of classes are introduced. This is another one that I’m going to download and experiment with to see where it takes me.

Greenfoot Interface

Greenfoot Interface

Finally, the author states that from there, kids can be introduced to Python, C++, Java, etc. He does make an excellent point that the learner must be engaged in the process and that what we adults find fascinating could bore a child to death.Haven’t we all been there before? LOL. I do believe that Python could be introduced a bit earlier by teaching students to create little math games that help reinforce the math facts, etc. The introduction would have to be incremental and there would be a lot of guided practice and debugging, but teachers are doing that already in other ways.

The author makes no mention of server-side scripting languages such as PHP, Javascript or Ruby on Rails, but those are languages I would advocate for as well. There is a lot that can be done with a tightly written PHP script and I do think that PHP can be a gateway drug for many future programmers. Heck, with the proflagation of CMS platforms built on PHP, it would serve a kid well to be able to debug his Wordpress/Drupal/Joomla/ installation. Python could be introduced a bit earlier by teaching students to create little math games that help reinforce the math facts, etc. As I mentioned in a prior post, there is a great PDF book online called Invent Your Own Computer Games with Python. It’s a few years old, but the author did a great job of breaking things down. The concepts are relevant and the little games are fun to create. I think that kids in the 10-14 age range would significantly benefit from being introduced to such a flexible, high-level programming language early on.

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS