Est. 1999 Beginner

Alice 2.x

Alice 2.x is Carnegie Mellon University's drag-and-drop 3D programming environment, built to remove syntax errors from a beginner's first encounter with programming by letting them animate a virtual world instead of typing code.

Created by Randy Pausch and the Stage 3 Research Group at Carnegie Mellon University; later maintained by Wanda Dann, Dennis Cosgrove, Don Slater and the Alice Project

Paradigm Object-based, event-driven and visual: programs are assembled by dragging statement tiles into method bodies attached to 3D objects. Sequential and parallel blocks (Do in order / Do together), conditionals, loops, recursion, parameters, lists and arrays are supported; there is no user-visible class hierarchy or inheritance
Typing Static and strong, enforced by the editor - a tile can only be dropped where its type fits. Built-in types include Number, Boolean, String, Object, plus 3D-specific types such as Color, Direction and Sound
First Appeared 1999
Latest Version 2.6.1 (released 31 January 2024)

Alice 2.x is a free 3D programming environment from Carnegie Mellon University in which a student writes a program by dragging statement tiles into place and watching a virtual world move. It is the second generation of the Alice system begun by Randy Pausch, and it is built on a single diagnosis: that the thing standing between a beginner and their first working program is not logic, algorithms or abstraction, but the semicolon.

Alice 2 removes typing from the equation almost entirely. Statements are tiles. Parameters are dropdown menus. A tile can only be dropped where a value of its type is legal. There is no compiler error, because there is no text to get wrong. What remains - sequencing, parallelism, conditionals, loops, parameters, recursion, events - is the part the course is actually about.

History and Origins

Alice began in the early 1990s as a virtual-reality research project under Randy Pausch, first at the University of Virginia and then, from 1997, at Carnegie Mellon, where Pausch’s Stage 3 Research Group continued it. The original goal was rapid prototyping of VR worlds: the headsets and gloves eventually dropped away, and what was left was a desktop system for scripting interactive 3D scenes. That system, distributed as Alice 99, was scripted in Python and marketed as free, easy, interactive 3D graphics for the WWW, complete with a browser plug-in.

Around 1999 the project changed its purpose. Pausch had observed - repeatedly, in real classrooms - that novice programmers spent most of their frustration budget on syntax rather than on ideas. Alice 2 was the response. Copyright notices on every Alice 2 build to this day begin at 1999, and the alice.org front page of the early 2000s describes v2 as having been “completely rewritten from scratch over the last two years,” with a new stated focus: to provide the best possible first exposure to programming for students ranging from middle schoolers to college students.

That rewrite surfaced publicly as Alice v2.0b, headlining alice.org by January 2003 and accompanied by a community “BugFest” reportedly held on 21 January. It stayed in beta for a remarkably long time - the site kept re-dating v2.0b builds through 2003 and 2004 - and only shed the b in 2005, with a version 2.0 build dated 17 March 2005 and another on 5 April. Funding acknowledgements from the period name DARPA, Intel, Microsoft, the NSF and the Office of Naval Research, with Electronic Arts and Sun Microsystems joining later.

Pausch was diagnosed with pancreatic cancer in 2006 and delivered his “Last Lecture” at Carnegie Mellon on 18 September 2007, in which Alice was named explicitly as the work he hoped would outlive him. He died on 25 July 2008. Wanda Dann took over as director of the Alice Project, and development of the 2.x line continued under her, Dennis Cosgrove and Don Slater.

Design Philosophy

Syntax is not the lesson. The central claim of Alice 2 is that syntax errors are pedagogically worthless: they teach nothing about computing and cost beginners enormous time and confidence. The drag-and-drop editor makes most of them structurally impossible. Types are checked at the point of the drop, so a String cannot be dropped where a Number is expected - the interface simply will not allow it.

The program is visible. In a text language, the effect of a statement is an abstraction. In Alice, bunny.move(forward, 1 meter) makes a rabbit move forward one metre, on screen, immediately. A loop is a rabbit hopping four times. A bug is a rabbit walking through a wall. Debugging becomes observation rather than inference.

Concurrency is a first-class beginner concept. Alice 2 gives Do in order and Do together equal footing as block constructs. Making two arms swing simultaneously is as easy as making them swing one after the other - so parallelism is introduced in week one rather than in an operating-systems course.

Objects are concrete before they are abstract. In Alice 2 an object is a thing standing in a scene with visible parts and properties, and methods are written on it. The word “object” is grounded before it is generalised. The cost - deliberate at the time - is that Alice 2 is object-based rather than class-based: you add methods to an object and can save that object for reuse, but there is no user-visible class hierarchy and no inheritance. Restoring those was a principal motivation for Alice 3.

The animation is the reward. Alice worlds are stories, games and films. A student’s output is something they want to show someone, which is a different motivational structure from printing a number to a console.

Key Features

FeatureIn Alice 2
Program constructionDrag-and-drop tiles into method bodies; a text script window backed by Jython is also available
Control flowDo in order, Do together, If/Else, Loop, While, For all in order, For all together
DataNumber, Boolean, String, Object, plus 3D types such as Color, Direction and Sound; lists and arrays
AbstractionWorld-level and object-level methods and functions, with parameters; recursion supported
EventsWhen the world starts, When a key is typed, When the mouse is clicked on something, While something is true, Let the arrow keys move subject
3DA scene editor with a large model gallery - several hundred objects in the full galleries - each with named subparts and built-in animations
OutputRun in a render window; export to movie via the Movie Maker

A world-level method in Alice 2 reads, in the editor’s own rendering, roughly like this:

Do in order
  bunny.hop        times = 3
  Do together
    bunny.turn to face  target = carrot
    camera.move  forward, 2 meters
  If  bunny is within 1 meter of carrot
    bunny.say  "Found it!"
  Else
    bunny.move  toward carrot, 1 meter

Every one of those lines was assembled by dragging, not typing - the numbers and the string are the only things a student enters at the keyboard.

Underneath, Alice 2 is a Java application (its packages still live under edu.cmu.cs.stage3.alice), rendering through JOGL and embedding Jython to execute the underlying script representation of a world. That Jython layer is the visible descendant of Alice 99’s Python scripting, and it is why the 2.6 upgrade of Jython from 2.1 to 2.7.3 was a breaking change to the saved-world format.

Evolution

The 2.x line was maintained for more than two decades, mostly as careful housekeeping around a stable language:

  • 2.0 (2003 beta, 2005 final) — the rewritten system, aimed squarely at introductory computing.
  • 2.2 (from around 2008-2009) — the version most textbook editions were written against; the August 2011 build reportedly added a universal Mac binary compatible with OS X 10.7 Lion and worlds for the third edition of Learning to Program with Alice.
  • 2.3 (5 August 2012) — Spanish display language, plus an in-application updater so that fixes no longer required a full reinstall. Point releases followed through 2.3.5 (2 August 2013).
  • 2.4 (2014-2015) — a Core Gallery with downloadable full galleries, Brazilian Portuguese, Middle East models built by the Alice team in Qatar, and extended character-set support. 2.4.3 (1 June 2015) shipped for Windows, Mac and Linux.
  • 2.5 (12 March 2018; 2.5.4 dated 13 March 2019) — largely a compatibility response to macOS High Sierra, which broke earlier builds. 2.5 was offered for Windows, Mac and Linux; 2.5.4 dropped the Linux build.
  • 2.6.0 (September 2023) — the big one: Java 8 to 17, Jython 2.1 to 2.7.3, JOGL 2.3.2 to 2.4.0, a Mac build updated for current hardware and OS versions, and the Linux build restored. Backward compatibility of saved worlds was broken.
  • 2.6.1 (31 January 2024) — right-to-left text for Arabic and Hebrew and high-DPI display fixes. Still the current release listed on alice.org; only 2.6.2 alpha and release-candidate builds have appeared since, on GitHub.

Meanwhile the project’s centre of gravity moved. Alice 3, announced with Sims 2 character assets contributed by Electronic Arts in February 2008 and released in beta on 13 August 2009, added genuine classes, inheritance and a side-by-side Java code view - the “mediated transfer” path from blocks to text that Alice 2 could not offer. Alice 3 has been the forward development line ever since; Alice 2 has been kept alive rather than advanced.

Current Relevance

Alice 2 remains downloadable from alice.org in English and Spanish gallery editions for Windows, macOS and Linux, and its source sits on GitHub under TheAliceProject/alice2. It is worth being precise about the licence: Alice 2 is free and source-available, but not open source in the OSI sense - the end-user licence permits binary redistribution for non-commercial purposes only, forbids derived products using the Alice name, and separately restricts the Garfield models licensed from Paws, Inc. to non-commercial educational use.

The version numbers tell an honest story. Roughly nine years separate the 2.4 line’s last real feature work (2014-2015) from 2.6.0’s 2023 platform rescue, and 2.6.0’s changelog is almost entirely a runtime upgrade. Alice 2 today is a maintained artefact: kept running for the institutions and curricula that still depend on it, while Alice 3 and, in the wider world, Scratch absorb new beginners. The block-based teaching idea Alice pioneered has thoroughly won; Alice 2 itself is no longer the vehicle carrying it.

Why It Matters

Alice 2 is one of the few teaching languages whose central hypothesis was stated clearly enough to be tested, and then actually tested. Pausch’s claim was that syntax is a barrier rather than a lesson. The Alice literature that followed - the reported Ithaca College and Saint Joseph’s University results on grades and retention among at-risk introductory students, Kelleher’s controlled comparison, in which middle-school girls given a story-shaped variant reportedly spent 42 percent more time programming than those given a generic build - turned a design intuition into an evidence base, and that evidence base is a direct ancestor of the modern consensus that beginners should start with blocks.

It also demonstrates the cost of getting one thing wrong. Alice 2’s object-based, class-free model was the right simplification for a first hour and the wrong one for a bridge to Java, and the entire Alice 3 project exists to fix it. That trade-off - how much of the real model to hide, and what it costs to un-hide it later - is still the central unsolved problem in introductory programming environment design.

And the environment is inseparable from the person. Pausch spent his last years pushing Alice into classrooms and named it, on 18 September 2007, as the thing he wanted to leave behind. Whatever else Alice 2 is technically, it is also a piece of software that a dying man asked the world to keep using, and that people at Carnegie Mellon have kept compiling for the better part of twenty years since.

Further Reading

Timeline

1999
The Alice 2 code line begins at Carnegie Mellon. Every subsequent release carries the copyright notice "Alice 2.x (c) 1999-...", and the alice.org front page of the era describes v2 as having been "completely rewritten from scratch". The predecessor system - Alice 99, a Python-scripted interactive 3D environment carried over from the University of Virginia - remained downloadable for years afterward under a "Where is Alice99?" link
2003
Alice v2.0b, the public beta, is the headline of alice.org by January 2003, with a community "BugFest" reportedly run on 21 January. The stated goal has changed from web 3D graphics to "the best possible first exposure to programming for students ranging from middle schoolers to college students". Beta builds are re-dated repeatedly through 2003 and 2004
2005
Alice 2.0 leaves beta. The site advertises a version 2.0 build dated 17 March 2005, replaced by one dated 5 April 2005, and a SIGCSE 2005 "Tea Party" presentation introduces the release to computing educators
2006
Learning to Program with Alice by Wanda Dann, Stephen Cooper and Randy Pausch is published by Prentice Hall (ISBN 0-13-187289-3; some listings date the first printing to 2005). Caitlin Kelleher completes Storytelling Alice, a variant built on Alice 2 for her CMU doctoral research
2007
Kelleher, Pausch and Sara Kiesler present "Storytelling Alice Motivates Middle School Girls To Learn Computer Programming" at CHI 2007. On 18 September, Pausch delivers his "Last Lecture" at Carnegie Mellon, in which Alice is named as the work he wants to outlive him
2008
Carnegie Mellon announces that Electronic Arts will contribute characters and scenes from The Sims 2 to the forthcoming Alice 3, and Sun Microsystems is reported as backing the project. Pausch dies on 25 July; Wanda Dann takes over as director of the Alice Project. Carnegie Mellon states at the time that Alice 2.0 is in use at 10 to 15 percent of US colleges and universities
2009
Alice 2.2 becomes a download on alice.org alongside 2.0 (a beta had circulated from late 2008). Separately, Carnegie Mellon announces the beta release of Alice 3 on 13 August - the branch that adds real classes, inheritance and a Java code view, and that becomes the project's forward development line
2010
Carnegie Mellon and the FBI announce a national competition, attached to the FBI's Safe Online Surfing programme, in which middle and high school students build 45-second internet-safety animations in Alice
2012
Alice 2.3 is released on 5 August, adding a Spanish display language and an in-application Update Software option so that teachers no longer have to re-download and reinstall the whole package for every fix
2014
Alice 2.4.2 is released on 13 June. The ballooning model gallery is split into a smaller Core Gallery with full English, Spanish and Middle East galleries downloadable from within the program, and a Brazilian Portuguese interface option is added
2015
Alice 2.4.3 is released on 1 June, reportedly fixing 64-bit library, sound and Unicode problems on Linux and drag-and-drop and Movie Maker bugs on OS X. Windows, Mac and Linux builds are all offered
2018
Alice 2.5 is released on 12 March, prompted largely by macOS High Sierra (10.13) breaking Alice 2.4 and earlier; the Alice 2 download page states that High Sierra requires version 2.5 or later. Windows, Mac and Linux builds are offered. Version 2.5.4, dated 13 March 2019, becomes the long-standing release and is still archived on the site, but is offered for Windows and Mac only
2023
Alice 2.6.0 is released in September (12 September on GitHub; the alice.org download page dates it 19 September) - the largest maintenance jump in the line's history, moving from Java 8 to Java 17, Jython 2.1 to 2.7.3, JOGL 2.3.2 to 2.4.0 and VecMath 1.3.1 to 1.5.2, updating the Mac build for newer hardware and OS versions, and restoring the Linux build absent from 2.5.4. The save format changes, so 2.6 projects cannot be opened by earlier versions
2024
Alice 2.6.1 is released on 31 January with, according to the project's release notes, right-to-left text support for Arabic and Hebrew and fixes for scaled high-DPI displays. It remains the current release listed on alice.org; only 2.6.2 alpha and release-candidate builds have followed on GitHub

Notable Uses & Legacy

US introductory computing courses

Alice 2 was written for the pre-CS1 and CS1 audience and reached it. In 2008 Carnegie Mellon stated that Alice 2.0 was in use in 10 to 15 percent of US colleges and universities - a self-reported figure, but a widely repeated one - plus a substantial number of high schools and middle schools: a rare case of a research-lab teaching tool becoming standard infrastructure across a national higher-education system.

The FBI Safe Online Surfing competition

In 2010 the FBI and Carnegie Mellon announced a national competition, part of the FBI's Safe Online Surfing internet-safety programme, in which middle and high school students produced 45-second animated public-service films written in Alice. The Alice teachers' mailing list carried calls for submissions in subsequent years, and the FBI's Safe Online Surfing programme itself continues to run.

Storytelling Alice and the CHI 2007 study

Caitlin Kelleher built Storytelling Alice on the Alice 2 codebase for her CMU doctoral work, adding story-oriented animations and a gallery aimed at middle-school girls. In her controlled comparison against a "Generic Alice" build, reported at CHI 2007 with Randy Pausch and Sara Kiesler, users of Storytelling Alice reportedly spent 42 percent more time programming than users of Generic Alice and were more than three times as likely to keep working past the end of the assigned session (51 percent versus 16 percent), with no reported difference in mastery of the underlying programming concepts. The comparison was between two builds of the same system given to middle-school girls in a study setting, not a benchmark against other teaching languages.

Textbook and curriculum publishing

Alice 2 supported a commercial textbook ecosystem unusual for an educational language: Learning to Program with Alice by Dann, Cooper and Pausch (Prentice Hall, through a third edition), Shelly Cashman's Alice 2.0: Introductory Concepts and Techniques, and a body of CMU-published lessons, sample syllabuses and test banks distributed free to teachers.

International classroom localisation

The Alice 2 line was localised well beyond English: a Spanish interface and gallery in 2.3 (2012), a Brazilian Portuguese interface and a Middle East model set built by the Alice team based in Qatar in 2.4.2 (2014), and right-to-left text support for Arabic and Hebrew as late as 2.6.1 (2024). The localisation work outlasted the software's mainstream US adoption.

Carnegie Mellon Building Virtual Worlds

Alice grew out of, and fed back into, Pausch's Building Virtual Worlds course and the Entertainment Technology Center he co-founded, where the point of the tool was to let students with no graphics-programming background stage an interactive 3D scene inside a two-week project cycle.

Language Influence

Influenced By

Influenced

Storytelling Alice Alice 3 Looking Glass

Running Today

Run examples using the official Docker image:

docker pull
Last updated: