Precocious. That was the single adjective used to describe a child displaying some natural talent straying from the normal. A generational leap later, I am not so sure that the word holds the meaning it used to. Every second toddler these days seems to display a natural likeness for things digital. So, it is easy to assume that they will take to computers as a fish takes to water.

For the average kid (I won’t talk about someone like Lim Ding Wen here, though I will use his cute photo as the thumbnail alongside), computers and smartphones are fun tools. Education comes much later. Getting a kid excited about programming might take some doing because logic needs a bit of time to develop. It is imagination and creativity which arrive first. That’s where the crux of these ten tools lie…using creative tools to get children excited about programming.

Just to illustrate the potential of creative teaching that should help to light the fire, here’s a TED Talk by Conrad Wolfram. Slightly unrelated, but do watch it to understand why kids (once, you and me too) lose interest in mathematics. It will also explain the dire need to take instructions out of their rigid strictures and throw them into the real world and everyday living. He advocates using programming to teach math. And thus, make it more fun, instead of forcing them to learn a subject.

10 Tools That Should Help With Learning Programming Creatively

From games to programming tools, from logic to intuition, let’s take a gander at ten tools that should help to show that programming is not all about functions and loops. Here are the honorable mentions (restricted to ten programming tools).

Crunchzilla Code Monster

programming for kids

Learn cool things about: JavaScript

Crunchzilla Code Monster was designed for kids (by Greg Linden, who wanted his kids to learn programming). It is sort of like a barebones WYSIWYG editor with one pane for code and the other pane for looking at what the code does. The Code Monster on top is a friendly ogre who leads everyone along from one lesson to the other. There are 59 lessons in all. You have to keep clicking the speech bubble to move from one to the next. The lessons start easy and are interactive. Variables and parameters are introduced and the colorful objects like boxes and trees are created with JavaScript code. Errors are also caught and explained. Code Monster saves what lesson you are on, so you can stop any time and come back later. As long as you come back on the same browser on the same machine, you'll get back to your lesson.

What a child might like: JavaScript on the left yes, but simple graphics are created on the right as if by ‘magic’.  A kid learning programming just has to play with the code to see instant colorful results on the right.

kids programming

Learn cool things about: Control structures in programming with the help of basic datatypes like words, lists, and arrays.

Logo is one of the oldest educational programming languages. It was created in 1967 for educational use and can be used to teach the basic of computer science. It is well known for its implementation of Turtle Graphics. From its early days, it has evolved and branched out into different versions for all operating systems. For instance, Elica is a Windows implementation which advances Logo into areas of 3d animation. The Turtle Academy is a nice resource for some hands on learning with this functional programming language. There are many resources like Turtle Logo and FMSLogo to tap into.

What a child might like: Teaching the turtle with movement and location commands to draw basic shapes and line graphics.

Scratch

Learn cool things about: Visual interactivity without learning programming syntax.

You cannot argue with 3,000,000 documented projects. Scratch has a worldwide community to boast of and therein lies the richness of learning. With Scratch, you can create interactive stories, animations, and even games. Here, let me direct you to a previous in-depth look into Scratch and just why kids might love it.

What a child might like: The scope to imagine things without learning about complicated programming concepts. Just drag and drop the sprites.

EToys

kids programming

Learn cool things about: Object oriented concepts with programmable scripts.

EToys is similar to Scratch in that it is a media enriched visual tool for creating cool computer programs. The idea behind the project is to foster creative and critical thinking. EToys runs as a standalone program and also in browsers (with the plug-in) across all platforms. EToys is extensible globally because it is available in several languages and is Open Source. Interestingly, it was first developed at Apple and has been universally used in the One Laptop per Child project.

What a child might like: 2D and 3D graphics supported by text, images, and sound files which can be made interactive and combined with help of easy scripts.

Waterbear

kids programming tools

Learn cool things about: Programmable scripts and how a program flows from one step to the next.

Waterbear is a recent development, and was inspired by Scratch. It is similar to Scratch in its visual approach to drag and drop objects (script blocks) and understand the program flow. In the backend, it generates JavaScript but the child does not have to know the syntax. The child has to provide the logic via parameters to assemble the blocks of the program though. One of the differences with Scratch is that the learning environment is the browser instead of a downloadable authoring environment. Waterbear is still not polished (pre-Alpha), but if you are looking for a Scratch alternative, it is worth a try.

What a child might like:  Drag and drop script blocks in the browser. Script blocks are described in simple English.

ToonTalk

kids programming tools

Learn cool things about:

The programming environment has the fun element with cartoons and animated characters. The full version is a 126 MB free download and runs on all versions of Windows and Mac (with Virtual PC). The site expresses it best - Inside of ToonTalk's animated world you will build and run all sorts of computer programs. While learning how to program you will face challenging puzzles, express your creativity, learn new ways to solve problems, and have loads of fun!

ToonTalk version 3.0 is now free.

What a child might like: Play the puzzle games to see how things are built on ToonTalk.

Cargo-Bot

Learn cool things about: How solving a puzzle in the most efficient way develops structured thinking.

Today, it’s more likely a kid will have an iPad in his hand rather than a laptop. Cargo -Bot is actually a free iPad puzzle and logic game which was developed on Codea. You have to ‘teach’ a robot arm on a platform how to move a bunch of crates across 36 different puzzles. Cargo-Bot is more about logic rather than pure programming. But if you succeed (and it is not easy to do so), you will have learnt a lot about structured thinking. Codea itself is a recommended app if you want to learn about developing apps for iOS. It’s a $9.99 investment which should give a return in knowledge if not anything else.

What a child might like: It’s a game that teaches programming without the child realizing it.

Ruby for Kids [No Longer Available]

kids programming tools

Learn cool things about: Ruby.

If you want to make your child learn a specific programming language, Ruby is a good choice. It is an object oriented language and a majority of web apps (e.g. Amazon and Twitter) are also coded with it. It is a simple language because the syntax is comparatively intuitive and has fewer command calls. It works on all operating systems and is free. There is also a huge community out there teaching and learning the language. The screencast tutorials, games, and examples at Ruby for Kids should be a firm stepping stone for adults and kids alike.

What a child might like How you can use Ruby to develop web games.

Raspberry Pi

Learn cool things about: Learn computer programming the old fashioned way; by also understanding the hardware.

For those who came in late, Raspberry Pi is a credit-card sized computer that can be programmed to be used just like a desktop PC. It was developed as a low cost solution to teach computer science at schools. Raspberry Pi has many interesting uses and every day the community behind it comes up with a novel one. The Raspberry Pi platform uses Open Source hardware and software and is perfectly placed for young geeky minds to exploit them to the hilt. But how is it being used in schools currently? The Raspberry Foundation site gives us a few clues.

What a child might like: How about learning how to program in an hour?

RoboMind

programming for kids

Learn cool things about: How to program a robot and thus the basics of robotics.

RoboMind is a programming and educational tool with its own scripting language called ROBO. The compact and simple language does not require prior knowledge. The programming objective is to make a virtual robot move around on a two-dimensional grid and exhibit simple actions.  It teaches the learner the common principles of programming that can be applied anywhere. It is available as a free download for Windows, Mac OS X, and Linux.

What a child might like: Learning the basics of artificial intelligence and later using it on real world robots like the kits available from LEGO Mindstorms NXT 2.0.

Teaching kids how to code and program is pretty much a part of edutainment now. For today’s society, it is important that its citizens learn to look beyond the comfort of applications and appliances and understand how they really work. We know how to use computers, but we should also know how to program them. So, at stake is all the innovation that has yet to happen. As this in-depth CNN article says, "computer class" can't be about teaching kids to use today's software; it must be about teaching kids to make tomorrow's software.

Do you agree?