Alice Educational Software

Alice: Teaching Programming through 3D Animation and Storytelling

Carnegie Mellon students and faculty dedicate themselves to pioneering practical solutions to real-world problems. Currently, one of our most significant challenges is a nationwide decline in computer science enrollment. Because the university is home to one of the top computer science departments in the world, our researchers are particularly interested in reversing this downturn, recognizing that the discipline has an enormous impact on the economy and can have a significant impact on other academic pursuits. Among those addressing the issue is a team established by Randy Pausch, computer science professor and originator of Alice—an innovative educational software environment—now under the direction of Wanda Dann.

The Issue

Because computer programming is a complex undertaking, beginning students often become frustrated with their tasks and pursue other academic interests. A 2005 study found a 50% decline in incoming freshman computer science majors nationwide from the previous five years, and reported an 80% drop of women computer science majors between 1998 and 2004.[1]

Students' initial difficulty when learning to program inspired the development of Alice, which is intended to make the learning process more engaging. Whereas typical introductory assignments are fairly tedious, the Alice approach to teaching and learning programming uses the context of creating animations and storytelling to make the work highly motivating.

Alice Educational Software

Unlike traditional programming languages that require users to follow a rigid syntax, Alice couples a drag-and-drop editor with characters and animated actions to provide an open-source, object-oriented programming environment. According to the website www.alice.org, the software "allows students to learn basic computer science [concepts] while creating animated movies, [and] simple video games, where students control the behavior of 3D objects and characters in a virtual world."

Alice's animations are created in a visual environment where users drag and drop graphical tiles to create instructions in a program, which correspond to standard statements in programming languages such as Java, C++, and C#. Therefore, the design introduces students to programming in a supportive and engaging environment from which they can gradually transition to programming in commercially-used languages. More importantly, Alice functions as an entry point to all the programming concepts typically taught in introductory computing courses.

Alice offers two major advantages for students learning to program. First, the drag-and-drop interface provides a method of program construction that prevents users from making syntax errors, thus relieving much of the initial frustration. Secondly, Alice displays program sequences as animations so users can see their mistakes and more readily fix them.[2] For example, if a character moves through a virtual world along the student's instructions but turns left instead of right at the end of the sequence, then the student can quickly pinpoint the problem. This leads to the development of good problem-solving skills.

Inspiring Young Minds

Although the current version of Alice (Alice 2.0) was developed for and is being widely used by high school and first-year college students, the Alice team has recognized its potential for use with younger students. "Programming needs to be put into context for people to understand why they’re doing it," Caitlin Kelleher explains. Kelleher, a Carnegie Mellon Ph.D. computer science graduate, discovered a link between younger students' motivation and storytelling and has developed and tested Storytelling Alice for middle school students.

Kelleher's research has had a huge impact on the development of Alice 3.0, the yet-to-be-released version of Alice. Because storytelling is entertaining, it entices students to continue programming and craft a story to share with friends or post on the web. For any beginning programmer—regardless of grade level—storytelling provides an approachable context for a first assignment, and Alice 3.0 will continue to serve as a gateway to programming concepts. A critical feature of version 3.0 is that the user will be able to switch between Java programming code and drag-and-drop system.

Bringing the Best Animations

Carnegie Mellon has teamed with Electronic Arts, Inc. (EA), makers of the best-selling PC video game of all time, The Sims, to improve Alice's animation capabilities. The forthcoming educational software will import characters and animation actions from The Sims 2 to tell stories and produce a programming environment for creating 3D animated movies and games. EA's expert animation will strengthen Alice's visual and expressive qualities, which will further increase students' engagement with programming.

EA and the Alice community hope to increase interest in computer science for students from middle school through college, especially girls and women. "Alice pays homage to Lewis Carroll, author of Alice's Adventures in Wonderland and Through the Looking Glass," Pausch explains of the origins of Alice's name. Of Carroll, Pausch says, "He could do intellectually difficult things but also realized the most powerful thing was to be able to communicate clearly and in an entertaining way. This inspires our efforts to make something as complex as computer programming easy and fun."[3]

For parents who are concerned that their children already spend too much time playing video games, the designers are quick to note that Alice 3.0 will not, in fact, be a video game; state-of-the-art animation is a context which exposures students to programming in a fun space so they can experience how compelling it can be. As Pausch writes on the Alice Community Forum, "Alice will always be about creating, learning to problem solve, and (whether or not we explicitly say these words) learning to program/learning some important concepts about computing. TheSims is a game; Alice v3.0 is a programming system."

The Impact

Alice's status as a teaching tool is hard to ignore—of the roughly 3,000 U.S. colleges, an estimated 10% teach with Alice 2.0. Between March 2006 and March 2007, the software was downloaded 440,540 times, a number that is expected to skyrocket with the newest version. In addition, Prentice Hall published 23,000 copies of the support text book, Learning to Program with Alice.[4] And a proof-of-concept study conducted by Dann, Pausch, and Steve Cooper found that among "at-risk" introductory computer science majors, Alice improved students' performance and retention rate within the major, and generally had a positive impact on their attitudes toward computer science.[5]

According to Kelleher, the real measure of success will be in the number of middle schools, high schools, and colleges that adopt Alice to introduce students to computer programming, as well as in retention rates within the discipline among schools that use the software. Pausch, Kelleher, and Dann hope that "Alice 3.0 will be the way that people are introduced to computer programming."

As with the original Alice, version 3.0 will be available for download free of charge. Scheduled for release in 2008, it will run on Windows, Macintosh, and Linux. At this time, there are no plans to make Alice 3.0 backward-compatible with the previous version.

Textbooks in support of Alice include Learning to Program with Alice by Dann, Cooper, and Pausch; An Introduction to Programming Using Alice by Charles W. Herbert; Alice 2.0: Introductory Concepts and Techniques by Gary B. Shelly, Thomas J. Cashman, and Charles W. Herbert; and Alice in Action: Computing Through Animationand Alice in Action with Javaby Joel Adams.