Alice Teaches Object Oriented Computer Programming To Kids

alice1a   Alice Teaches Object Oriented Computer Programming To KidsAlice 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.

alice1   Alice Teaches Object Oriented 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.

alice2   Alice Teaches Object Oriented 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.

alice3   Alice Teaches Object Oriented 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.

alice4   Alice Teaches Object Oriented Computer Programming To Kids

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.

alice6   Alice Teaches Object Oriented Computer Programming To Kids

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.

alice10   Alice Teaches Object Oriented Computer Programming To 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.”

alice7   Alice Teaches Object Oriented Computer Programming To 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.

The comments were closed because the article is more than 180 days old.

If you have any questions related to what's mentioned in the article or need help with any computer issue, ask it on MakeUseOf Answers—We and our community will be more than happy to help.

21 Comments -

0 votes

theboomroasted

im in beginning computer science in highschool and we used this program at the beginning of the year. it’s decent, but has a few bad bugs. for instance, if you ask the user for something such as a number and accidentally put it in a forever loop, once you run the program there is no way to stop it without quitting it through the task manager. unfortunately, task manager is blocked at my school anyone who encountered this bug had to restart their computer and lose the data they hadn’t saved.

0 votes

Ryan Dube

Hi boomroasted – thanks for your comment. You bring up a good point. On a similar note, infinite loops can be pretty disastrous and difficult to escape from in many programming languages, not just in Alic – so I’m not sure I’d really consider it a bug, but something to try to avoid (and the school really should provide students with a method to kill programs or processes).

0 votes

Jack Cola

Off memory, I think there was a key combination you could do. For some reason, Control+c is coming to my head, but I doubt that.

I has an assignment on Alice in Grade 12. We made a dancing game. Use the up and down arrows or wasd for 2 player. It is really cool. If anyone wants to look at it, ill try upload it for you to play.

It is really easy to learn its pretty much drag and drop. Although it doesn’t teach you the syntax, it teaches students the concept on programming and make you think logically on how you want something to be done. You can turn syntax on that can help you learn the syntax a bit more.

So if you want to learn the concept (thinking and logic) behind programing, you should first use Alice.

If your program becomes really large, it may slow down your computer too.

0 votes

BrianS

I’m a professional programmer and although I haven’t seen this program (yet!) I’m sure I will support it for learning logic and other basic programming concepts.
Syntax changes with languages, and it isn’t what’s important when you’re just starting off. You can/will pick up the syntax in time; the fundamental concepts are more important to begin with.
Well done Alice!

0 votes

dhea

Object-oriented programming (OOP) is a programming paradigm that uses “objects” and their interactions to design applications and computer programs. Programming techniques may include features such as encapsulation, modularity, polymorphism, and inheritance. It was not commonly used in mainstream software application development until the early 1990s. Many modern programming languages now support OOP.

0 votes

Lost

Can anyone help me with this scenario. I am completely lost.

o Road to Hana: Create a world with a convertible Corvette (Vehicles) and a person of your choice (People) that will determine the drive time to Hana. The user is asked the number of miles between the current location and Hana, as well as the speed limit for the road to get there. Set up variables for both of the entered values. Create a third variable to hold the calculated hours for the trip. The formula for hours is as follows: miles divided by the speed limit. At this point, the person should approach the camera, and the Corvette should come into view, stopping next to the person. The person should then look at the Corvette, turn to the camera, and say a message in bubble text that includes the time in hours it will take to reach Hana. The car should then drive away, and the person should walk away in the opposite direction.

0 votes

Jack Cola

Hi,
So what are you having trouble with. It seems that you have given a situation (maybe an assignment question). We can help you if you have a certain problem, but we will not do the task for you.

Are you having trouble getting input from the user, or moving the objects?