Originally this site was about my experiences teaching a class of children to program, I've moved those notes to another page Teaching a class to program.
I learnt to program many years ago when my school got a Commodore PET, an early all-in-one computer programmed in (Microsoft) Basic. I can remember how excited I was when that first program worked and I really wanted my kids to experience that.
So far I haven't managed to persuade any of them to take it very far, but they have crafted a few games using Scratch -- the children's programming environment from MIT. I've also taught a class of 9 year olds in the local school Scratch and that went reasonably well.
I'm going to put more general resources on this page as I gather them, I've found that this area changes all the time and most environments get hyped at the start but then gradually wither away.
How old can you start programming?
I think you could start really young if you have a talented, motivated child and you have the time and expertise to work with them; perhaps 7 years. I see lots of comments on programming sites of parents teaching younger kids but personally, I'd wait, they're going to spend years sitting in front of screens, do you really want to encourage it earlier?
My 9 year old could do fun things with Scratch and of course teens and older children are going to find this easier than the younger ones.
Early teens and complete beginners would probably still enjoy using Scratch / Small Basic to get a feel for it but a keen older child would probably be best to rapidly move on to Python (see below); also for the more practical child do try combined hardware/software kits like Lego Mindstorms.
Books
Also check out my longer kids programming reading list page
Combined software and hardware options for kids
I think its a great idea for older kids to combine hardware and software and there are now so many cool options.
 |
Lego Mindstorms
The Lego Mindstorms kits are really well regarded but are a bit pricey. They are the only one completely targeted at kids (and the kid in all of us, come on be honest). With the kit you can make innumerable cool robots and devices, for instance a robot that guards your room and shoots balls at intruders! According to the Lego site: The Mindstorms robotics toolkit comes with building instructions for 4 main models ranging in building complexity, going from the Quick Start model that you can assemble and program in 30 minutes, to the ultimate Humanoid. 6 building and programming challenges are included on the software CD, complete with step-by-step building instructions and programming guide for all models.
|
 |
Arduino Kits
Definitely one for older kids only, I'd think 14+ unless they are really committed. There are lots of these kits available, a bare-bones kit can be $25 but unless you've got a lot of electronics lying around you'll need some sensors to be able to actually do anything fun.
I'd suggest getting a kit with all the getting started stuff like the one shown to the left.
There's also the awesomely named book 30 Arduino Projects for the Evil Genius . MAKE magazine is also well worth subscribing to as they do a lot with Arduino kits they also have a good book available.
|
 |
Raspberry Pi
The new kid on the block, not as many hardware add-ons (yet) but a fully fledged computer costing under $50, great for embedded projects, like a media player.
Includes networking and an HDMI out for connecting to a regular TV. The excellent MAKE magazine also has a book for getting started with the Raspberry Pi.
|
Software Programming Environments Suitable for Children
| Environment |
Name |
Notes |
|
|
Scratch |
Free, cross platform (also Web browser version).
Good starting environment especially for younger children, I would estimate most kids 8-9 years old could start and probably smart 7 year olds.
Programming is all drag-n-drop but has a reasonable set of control structures (loops, ifs) and a good event based model.
There's a new release which runs entirely in a web browser which is great.
|
|
|
SmallBasic |
Free, Windows only.
Created in 2008, a simple Basic environment for .NET, I tried it very briefly when it first came out and was a little disappointed, however its been improved since then and they've put a lot of work into it. One great feature is that once the kids have outgrown SmallBasic they can take their project and upgrade it and then take it further with the full VisualBasic.NET environment (the Express edition is free too). Microsoft also has some great beginning programming videos and tutorials, overall highly recommended.
|
|
GameMaker |
Not strictly targeted at kids but I think it would make a good next step after Scratch. Again no hand-writing of scripts its all drag-n-drop and dialogs but much more fully featured than Scratch (and hence more complicated). |
|
|
PyGame and Python
|
For somewhat older kids I think you could get useful stuff done with a generic programming language (like Python).
Add in a library like PyGame and you've got a pretty good basis.
|
|
|
Kudo |
Free: Windows and XBox
Microsoft Research visual coding environment, my 9 year old enjoyed using this. Emphasizes the fun aspect. Also check out the excellent Microsoft Kid's Corner in their beginners development center.
|
|
|
Khan Academy |
Free: Cross platform (browser based).
Khan Academy has an introduction to programming using JavaScript; not a great sense of fun though.
|
| | HTML | Although not programming kids can get very enthused about building web sites, if you start them building basic static web sites they can advance on to JavaScript programming and get into programming that way.
Khan Academy (above) has a reasonable JavaScript tutorial suitable for children as does Cadecaemy (below)
| | | Codecademy | Codecademy is an web site dedicated to teaching programming in JavaScript and does it very well, it starts simply and builds and builds. A bit dry for the younger kids. |
Comments? Contact?
You can contact me at M A R K at Teach Kids To Program dot com (no spaces, all lower case).
|