Learning to Program with Alice
You won't see Alice on the lists of hot programming languages and you'll rarely see it cited in job ads, but it's hot in its own way. That's because tomorrow's software development depends on the attitudes of today's kids; it’s imperative that they see programming as accessible and interesting.
Alice is an educational language, designed to hook young people and teach them the concepts behind object-oriented programming and programming in general. It allows them to create cool animations while they’re learning. Who do we owe Alice to? The folks at Carnegie Mellon.
While it is possible to create some complex animations in Alice, it's intended as a transitional language. It's been touted as an introductory language for kids as young as eight, though it was designed primarily for students at the high school level.
Alice is fun! ~ Sandra Boyd, Educator
Storytelling Alice, developed by a Carnegie Mellon PhD candidate, was envisioned as a way of pulling in even younger students. The focus is on girls and the things that engage their attention during the middle school years. Storytelling Alice includes animations that are designed to encourage students to engage their characters socially.
Yes, one of the selling points for Alice is that it’s fun. Richard Baldwin has written some introductory material about the language. He notes that the first thing you do is not program, but rather set the stage with characters. Later you need to program to get them to do things!
History of Alice
The concept of an educational programming language is not new. Back in the 80's, kids were using Logo to give commands to turtles. Some of today's software engineers remember the experience. Alice, though, has far more advanced capabilities. It also has a different history and set of predecessors. Alice has a basis in Python.
Alice also allows for creation of 3-D animations and interactions without the need for as much advanced math.
One thing that differentiates Alice is that it is visual. When a student programs an object to do something, it does it -- visually -- on the screen. And when she changes something, she can immediately see the effects of what she's changed. Alice removes variables that confuse students and allows them to focus first on the essentials.
It’s not necessary to memorize code or even paste it in. Bits of code can actually be dragged into the correct place in the program. This alleviates some sources of error. Advocates argue that this is more like the world students know. Students may lose points for misplaced commas – and too many mistakes may mean not getting the scholarship or position – but a single misplaced comma won’t change the meaning of an essay or science report.
Alice also allows for creation of 3-D animations and interactions without the need for as much advanced math. One of the testimonials on the Alice site is by someone who uses the language to prototype 3-D educational apps.
Alice is sometimes taught to university students to help them understand what object-oriented programming is about. There's some controversy around the use. What level is it appropriate for? In “What's In Alice: A 3-D Tool for Introductory Programming Concepts”, Stephen Cooper et al argue that it's difficult for students to code and debug if they don't have the underlying concepts. Alice allows them to form these concepts.
You can download Alice 2.3 or 3.1 from Alice.org. There is a tutorial that you can go through after you launch the program. Although the software itself is freely available, some of the teaching materials are available only through a password-protected site. If you are an instructor, you can get access to materials on the Learning to Program with Alice website.
There are also some third party sites where you can go to learn more about Alice. You may want to visit Duke University’s Adventures in Alice Programming site. Duke University held a symposium in 2012. There are also a lot of resources on the Duke site. There’s a pictorial tutorial that shows how to get more precise with your coding as you learn more about Alice. At one point, you’re telling a bluebird to fly forward when you press any key. Then you get more specific about what key you press to trigger the event. You also let the bluebird know to stop!