My family spent Saturday afternoon at the American Association for the Advancement of Science (AAAS) Family Day in Boston, where we saw all kinds of great stuff. I’ll post more about the expo a little later, but I want to tell you first about one particularly outstanding product we learned about while there: a free programming interface for kids called Alice.
I’m excited about this program because my 9-year-old has said she wants to learn how to make her own computer games, and we’ve been looking for a child-friendly application to help her learn how to do that. We couldn’t find anything that looked like a 9-year-old programming novice would be able to learn quickly and easily. Half the battle with helping young kids maintain their excitement is to enable them to complete a project in a short period of time (like two hours on the first try). Everything we looked at either had a huge learning curve or would have probably been too difficult for our daughter right now.
And then, Saturday, we just stumbled upon Alice by accident.
Carnegie Mellon developed Alice, a drag-and-drop programming interface that allows you to create 3D worlds in a Java-like language. Sometime this year, a new version (3.0) of Alice will be released which will enable actual Java programming, not Java-like programming.
In the meantime, two versions are available for Windows, Mac, and Linux, standard Alice, designed for high school and college-aged “kids” and Storytelling Alice, for middle school-aged kids. I think even some younger kids will be able to use Storytelling Alice, given that my 7-year-old son sat on my lap this morning and explained to me how he thought it worked. After watching me for a few minutes, he definitely understood the basic idea behind how to build a world and make the characters in it do what we wanted them to do.
Both versions of Alice come with a library of scenes and characters; each character has a handful (or more) of ready-to-use methods (actions), so that if you want your character to walk, run, talk, turn, smile, cry, think, etc., you can just drag that method from a list and drop it into your program. You can also create new methods.
I took the 30-minute tutorial for Storytelling Alice and then spent another 30 minutes playing with the software. In that hour, I learned how to create a new world, add characters to it, and program those characters to do what I wanted them to do. I also learned some programming terminology, like what a method is. I finished a brief movie in about 30 minutes. Not too shabby!
The Alice.org website also offers free instructional materials, a user forum, additional characters and scenes, and other helpful information. When I have time to play with the tool more, I’ll learn how to do programming loops, “while” statements, and other standard programming thingies (pardon my technical language) that will allow my characters to interact more naturally. Eventually, I suppose I’ll let my daughter have a turn. It was her idea to learn how to program, wasn’t it?
And did I mention that Alice is free?
My only disappointment thus far is with the publishing capability. The “publish as movie” function doesn’t work yet (at least not in Storytelling Alice). And if you publish as an HTML page, anyone who wants to view the page has to have Java, Java 3D, and Java Media Console installed on his/her computer.
Otherwise, Alice rocks. Check it out at Alice.org.