How To Teach Programming To Kids

Posted by

Geek!This is R. L. Shanker’s submission for the HP Magic Giveaway. Feel free to leave comments for this article as you see fit – your feedback is certainly welcomed! If you’d like to submit your own how-to, what-is, or top-five list, you can send it to me. Views and opinions of this writer are not necessarily my own:

You probably know a kid who is bitten by the computer bug – could be your son or your nephew or your friend’s kid. Since you are the resident uber-geek, you have been given the responsibility of initiating him into the wonderful world of computers. One fine day, you gather the kid, roll up your sleeves and sit down in front of the computer. And then it hits you: What do you teach him – Java? C++? VB.NET? The guy has a concentration span of exactly ninety-six seconds. You start scratching your head. If this sounds familiar, this tutorial is for you.

In this how-to, I review two tools that have been tested successfully in homes/schools across the world. Like any other discussion on “which software to use”, there are unlimited options and fanatic supporters for each one of them. So, kindly use this tutorial as a starting point and do your own research; there are a lot of pointers that I have included for your reference. Before getting down to details, let me clarify one thing: while none of us would want to force programming as a career choice on our kids, all of us would agree on the importance of making kids comfortable with what is unarguably the most powerful tool at our disposal. There, done. Now, let us move on to the details.

Age 6-9 years

Scratch: A product of the Lifelong Kindergarten Group at MIT, Scratch provides kids with an exciting environment to create and share computer applications. Applications in Scratch are built around what are referred to as Sprites; these could be animals, objects, people etc. Using simple drag-and-drop programming, students can control their actions and interactions. In the process, they are subtly exposed to basic programming concepts such as conditional statements, iteration, variables, and event triggers. It is easy to be misled by the overt simplicity of the application; however, the scope of Scratch is not restricted to just creating dummy games. One look at the online Scratch gallery is sufficient to dispel all such notions. I even came across an application that illustrates wave harmonics in the most intuitive way.

This brings me to the other great feature about Scratch – it has a terrific online presence. Currently, more than 200,000 applications are shared online. Your kid can get immediate feedback from his peers and they can even work on a collaborative project. Scratch’s online presence, combined with its highly accessible interface, puts it way ahead of its competitors such as Logo, Squeak, Alice , Toontalk, and Gamemaker.

Age: 10-14 years

Phrogram. The most frustrating aspect about dealing with kids is the pace at which they outgrow their interests. As a mentor, it is imperative that you find ways of keeping their passion alive. Enter KPL, Kids Programming Language. KPL was launched in 2005 as a freeware programming language and has since been replaced by its commercial successor, Phrogram. While the focus of Scratch is on designing applications, the focus of Phrogram is on programming applications – a logical next-step. Phrogram supports object-oriented programming and provides an excellent stepping stone for “serious programming”. In order to make the task more appealing, Phrogram provides a range of in-built libraries. You can find details about a course offered in Ohio State University that uses Phrogram exclusively here. Wait, it keeps getting better – you can even write XBOX applications on Phrogram. Talk about getting a kid excited – his own application on XBOX!

The only downside is that Phrogram is not a freeware. However, the basic version is pretty cheap; it is actually cheaper than most popular video games. If cost is still a concern, you can check out Greenfoot. Greenfoot is based on Java and is equally accessible to kids in this age-group. Here, a parent provides a lively account of a game-building exercise he did with his 9-year old daughter using Greenfoot.

Age: 15+ years

The kid is now ready for the big league; it is time to respect his intellect and let him take the deep plunge. We are talking Python, C, C++, Java, etc. Since the questions are going to come thick and fast, I would recommend that you pick a language that you are comfortable with. For instance, I have been working with C++ for a very long time and it would be my natural choice.

Final thoughts

Engage, engage and engage.

The actual choice of software or platform is a subjective one – it depends on the student and the tutor. Whichever software you choose, for the endeavour to be successful, the kid must be actively engaged. What excites you as an adult doesn’t have to (and in all likelihood, will not) excite the young mind. Put yourself in his shoes. Fit in.

Be the inspiration.

The final onus is on you to convince the kid that there is no end to this wonderful experience. You need to tease him, tantalize him, and then cut him loose. Let him experiment. Support him if he fails. Challenge him if he succeeds.