alice1a

Alice is one of the coolest programs that teach computer programming to kids. What is Alice? It's an important tool schools and families can use to turn computer programming into a game-like experience to teach basic object-oriented programming to kids.

One of the coolest memories I have as a kid is when my brother and I would copy BASIC programs from the computer magazines of the day (1980's) into the old Franklin 64 desktop computer with one floppy drive and a whopping 64k of RAM. I'll never forget when we finished typing the last line of that first program and then entered the command to RUN - how the screen started flashing characters and the miniature speaker beeped through a pathetic rendition of "Dance of the Sugarplum Fairy."  Pure magic.  I was only 9 years old, but at that moment I was hooked on computers for life.

For anyone who has never created an application, it's hard to describe the feeling of creating something from nothing. Programming is a lot like any other form of art in that way, except instead of the canvas we've got the computer screen, and instead of the paint brushes we have the various programming platforms.

Here at MakeUseOf, we believe in the importance of simple learning tools that can teach complex skills, such as computer programming. For example, Guy covered how you can learn to write a program with SmallBasic, and he also covered a cool application called Scratch that can teach kids how to program. Today, I'd like to cover another innovative software application called Alice that can teach kids how to program in object oriented languages.

Alice 3D Programming - What It Is & What It Isn't

Alice 3D is a programming environment offered by Carnegie Mellon University. It's provided for free as a public service, through the funding of various programming  and computer giants, such as Electronic Arts, Sun Microsystems, the National Science Foundation and other major organizations.

Alice is not a scripting tutorial where students will learn about the correct syntax used in various programming languages. It isn't about developing the best structured For Loop. Instead, Alice provides students with a virtual world - a 3D modeling environment where students can learn how putting together various components, which each individually have their own properties, can create a larger, working project. The 3D environment is meant to show students, in a simple way, how the concept of object-oriented programming works.

programs that teach computer programming to kids

The software itself has a built in tutorial, which makes sense because it's main purpose is to serve as a teaching tool. The first screen allows students to choose from one of the tutorials, open a recent world they created, see examples or open a world they've saved on the computer. The option I want to show today is how a student can start from one of the available templates and create their own 3D animation. For this example I'll go with the space scene.

programs that teach computer programming to kids

If you're a programmer, the first thing you'll notice are the panes on the left side of the screen where all of the objects and the associated properties, methods and functions are listed. The interface is so intuitive that students don't even need to understand what objects and methods are, just by adding objects and using the interface to manipulate them, they'll be slowly learning the concept of object oriented programming. Adding an object to the screen is as simple as pressing the green "Add Objects" button.

programs that teach computer programming to kids

In the object gallery, students have dozens of very fun "objects" to choose from. These include characters, machines, vehicles and even special effects like fire and thunderstorms.

kids open source programming

In this scene, I've added the moon surface, a lunar lander and an astronaut. As you can see in the upper left window, every object is made up of many components, each individual objects with their own properties, methods and functions. You can control any one of these by dragging and dropping the component into the programming area at the bottom of the programming interface.

kids open source programming

When you do drag the object in, a pop-up screen shows you all of the available methods and functions you can use to program the behavior of that particular object. This is similar to how, in most object oriented programming languages, the programming platform typically offers this same feature. Once you drill down through the available functions and select the one you want, it gets inserted into the program.

programming language for kids

The program itself can be as simple or as complex as you like. As you can see here, it's possible to create intricate and highly functional programs by using If/Else statements, While loops and other standard conditional statements that are a part of most programming languages today. Within a few minutes of playing around with this addictive learning program, I created a 3D animation where the astronaut moved closer to his lunar lander and waves "goodbye."  The camera pans in closer, and then as the lunar lander launches without him on board, he says, "Uh-oh."

programming language for kids

The exciting thing about this fantastic free learning tool from Carnegie Mellon University is the fact that it can be a very simple learning tool for very young kids to learn basic programming skills, or it can be a useful tool for even high school kids to generate very intricate and ingenious programmed 3D worlds.

In either case, this is one of the best programs that teach computer programming to kids that encourages children to engage with their computers in ways that they may never have considered - with a depth of understanding kids just never really achieve when all they do is chat on IM and update their status on Twitter and Facebook. Alice helps kids understand the heart and soul of what makes computer technology and programming so cool.

Would you ever consider using Alice in your own school or as part of your curriculum? Is this a learning tool you would consider sharing with your own kids? Share your insight and experiences in the comments section below.