To that end, I've installed Xubuntu on an old Sony Pentium-II 233 laptop we had lying around. Her primary use is going to be authoring her novel using Open Office, but secondarily, we'll use it for teaching her Python.
I've chosen to teach her using Python because it has a good signal-to-noise ratio between coding-overhead and coding-response. It is very easy to do easy things, unlike Java, C#, and other languages of that nature that have a lot of programmer-overhead. It is also more structured, making it easier to read code, as opposed to languages like Perl.
In support of this teaching, I've found a couple of interesting things. First is a great book targeted at teaching kids Python called Snake Wrangling for Kids by Jason R Briggs. Kudos to Jason for this: I hope you get it published soon.
The other interesting thing I've found is Guido Van Robot. According to the website, "Guido van Robot, or GvR for short, is a programming language and free software application designed to introduce beginners to the fundamentals of programming." To be honest, it is a bit buggy, but interesting nonetheless.
An important point is that I'm teaching an early-teen. I don't think this would work for younger kids. Other interesting technologies include
- Scratch, which would certainly appeal to younger programmers.
- Storytelling Alice for early teens (targeted especially at girls).
- Computer Science Unplugged is a neat program for teaching computer science without programming...and without computers.
- Squeak is a Smalltalk-based system for teaching programming, math, and computer science concepts to younger children. This one has a lot of promise, and I will be introducing my younger children to it.
What have you found for teaching programming and computer science? This is close to my heart, because I am a geek and want my kids to be geeks, too.
I'm sure there are more sources out there, and as I run across them or as I get feedback from my daughter, I'll post. I'd love to hear your feedback as well.