Software Engineering Insider
home button


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 programming

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.

Learning Alice

You can download Alice 2.3 or 3.1 from 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!

Back to the SEI Learning Center

syracuse msce

Alice Programming Tools

Additional resources for girls and women interested in programming...

If you are ready to research programming at the College level...

Find a Program...


Home  |   About Us   |  Contact  |   Privacy Policy  |   Terms of Use
© 2011-2024 All Rights Reserved.

Wiley University Services maintains this website. We are an advertising-supported publisher and are compensated in exchange for placement of sponsored education offerings or by you clicking on certain links posted on our site. This compensation may impact how, where and in what order products appear within listing categories. We aim to keep this site current and to correct errors brought to our attention. Education does not guarantee outcomes including but not limited to employment or future earnings potential. View Advertiser Disclosure