Wednesday, September 4, 8:30 AM

Alice: A System Using 3D Graphics to Teach Computer Programming

Randy Pausch
School of Computer Science
Carnegie Mellon University

Programming computers is an intrinsically difficult activity, but our current methods and technologies for teaching it could be much better. We have spent the last seven years developing the Alice environment, which uses interactive 3D graphics and a drag-and-drop interface to make a student's first exposure to computer programming much easier, while still keeping the full power of a Java/C++ level language. Alice attempts to provide the benefits of a system like Papert's Logo without being relegated to being a toy: we provide a system that supports everything most traditional semester-long "Introduction to Programming" courses cover, but remove unnecessary hurdles, and provide a more motivating learning environment.

In addition to the intrinsic concepts (conditional execution, iteration, subroutines, parameters) of programming, beginning programmers are simultaneously confronted with needing to type unforgiving syntax, the inability to see the state of their program as it runs, and low motivation for their assignments. Alice improves the initial introduction to programming by:

  1. Avoiding the typing and syntax hurdles by providing a drag-and-drop interface where students visually manipulate program elements ("if", "while", "for", etc.).
  2. Showing program state with 3D objects, which reinforces the object-based programming model and makes all changes to data both visible and animated.
  3. Using 3d graphical characters as a vehicle for storytelling, a great motivator in early pilot trials, especially with female students. Alice is part of a larger initiative at Carnegie Mellon, where we have recently increased our undergraduate CS population from 13% females to 40% females.

We have taught "introduction to programming for non-majors" courses using Alice at St. Joseph's University and Ithaca College, as well as using it in the "Building Virtual Worlds" course at Carnegie Mellon. In this talk we will provide a demo of the Alice system, describe our design principles, and discuss our experiences with the system.

A short biography of Randy Pausch is available here.

Last modification: 6/5/2002, Mark Minas