Teaching Programming to Kids
I have been searching for the best way to help my son Ben explore programming. He loves computers and is constantly looking for new challenges. In fact, for the past month, he has been hacking the Lego Star Wars text files to change the behavior of the characters, including their size and how they react to gravity. Cool stuff.
We've played with a few scripting languages and used the Firefox web developer plug-in to edit the CSS of random websites to see what havoc we could cause. He has also been a regular user of Microsoft's Bitman's Place, a site created to help kids explore computers and programming. Unfortunately, the site has rapidly lost momentum - the current lesson apparently involves getting all the kids to help solve an Object reference not set to an instance of an object error that has been there for 3 months.
As I've written previously, I'm surprised there aren't more options in this area. Ben and most of his friends talk about wanting to create computer games all the time. Can you imagine a software environment that allowed kids (10+) to build a computer game, partly from self-contained programming blocks that handle certain actions, but also through code they could write themselves? The games they create could then be shared with other kids through a community site. You couldn't tear my son away from something like that, and if it really taught programming concepts, parents would be all over it as well.
Until that dream comes true, I think I found two books that are better than anything else I've seen. The first is Learn to Program by Chris Pine. This book focuses on the language of the moment, Ruby. Chris seems like a terrific guy and is someone that has experience teaching programming. He has really thought about what works best for people who are truly starting from scratch. The book will be released shortly and my order has already been placed.
The second is Head First HTML with CSS & XHTLM by Elisabeth and Eric Freeman. This book is unbelievable. I have been searching for a great, current HTML and CSS book and this is all that and more. The Head First approach of beautiful, clever, and visually-focused pages is perfect for this subject. The book is over 650 pages and just came out in December. If you want to get started with HTML and CSS, this is where to begin.




Brian, regarding the programming of games, have you looked at GameMaker http://www.gamemaker.nl/ ? Whilst I haven't personally used it, I know it's used in schools.
Posted by: Simon | December 29, 2005 at 05:20 PM
Brian, check out Alice. http://www.alice.org/ It's a 3D environment that allows kids to create games or movies. It sounds just like what you're looking for. I've used it for 4H and my wife has taught it in her class of middle school kids. -Mikel
Posted by: Mikel Berger | December 29, 2005 at 06:42 PM
Thanks for the help, guys. Both of these look cool. I'll give them a try this weekend.
Posted by: Brian | December 30, 2005 at 09:03 PM
I'm kind of late to the party here, but the SitePoint books (www.sitepoint.com) are very readable. I especially recommend the html/css books to learn web design.
I've seen the Head First books at our local B&N, but haven't taken a look through them at all. They look interesting, and I'll put them on my "to do" list next time I'm there.
Posted by: Rick | January 06, 2006 at 01:31 PM
Have you looked at Guido van Robot (gvr@sf.net) or RUR-PLE (rur-ple@sf.net). The first is a Python-like language; the second is based on Python itself. Both have been used in school settings, although RUR-PLE, being much newer, has had less exposure. And while RUR-PLE is not yet at version 1.0, it effectively includes all that is included in GvR.
Both are totally free!
Disclaimer: I am the creator of RUR-PLE. After a short hiatus, I am working on it again and hope to release version 1.0 within a few months. The following step will be to include an introduction to game making with Pygame, as a smooth transition from RUR-PLE.
Posted by: André Roberge | January 12, 2006 at 06:11 AM
My apologies about the "links" in the previous post. They should have read:
http://gvr.sf.net
http://rur-ple.sf.net
Posted by: André Roberge | January 12, 2006 at 06:43 AM
Squeak will let kids create games and simulations. Check out http://www.squeakland.org
There is also a great book for kids learning to program:
http://www.amazon.com/gp/product/1590594916/
Posted by: Todd Blanchard | January 12, 2006 at 07:13 PM