Basic animation of an ice skater
|Developer(s)||Carnegie Mellon University|
|Stable release||3.1 / August 14, 2012|
|License||BSD (no source available)|
Alice is a freeware object-oriented educational programming language with an integrated development environment (IDE). Alice uses a drag and drop environment to create computer animations using 3D models. The software was developed first at University of Virginia, then Carnegie Mellon (from 1997), by a research group led by the late Randy Pausch.
Alice was developed to address three core problems in educational programming:
- Most programming languages are designed to be usable for "production code" and thus introduce additional complexity. Alice is designed solely to teach programming theory without the complex semantics of production languages such as C++. Users can place objects from Alice's gallery into the virtual world that they have imagined, and then they can program by dragging and dropping tiles that represent logical structures. Additionally, the user can manipulate Alice's camera and lighting to make further enhancements. Alice can be used for 3D user interfaces.
- Alice is conjoined with its IDE. There is no syntax to remember. However, it supports the full object-oriented, event driven model of programming.
- Alice is designed to appeal to specific subpopulations not normally exposed to computer programming, such as female students of middle school age, by encouraging storytelling, unlike most other programming languages which are designed for computation. Alice is also used at many colleges and universities in Introduction to Programming courses.
In controlled studies at Ithaca College and Saint Joseph's University looking at students with no prior programming experience taking their first computer science course, the average grade rose from C to B, and retention rose from 47% to 88%.
- High-level animations that enable users to program social interactions between characters.
- A story-based tutorial that introduces users to programming through building a story.
- A gallery of 3D characters and scenery with custom animations designed to spark story ideas.
It appeared to increase interest (42% increase in programming time and over three times as many students doing additional work as Generic Alice) without any drop off in basic programming tasks acquired. The next version of Storytelling Alice is known as Looking Glass, and is being developed at Washington University in St. Louis.
See also 
- Educational programming language
- Visual programming language
- Very high-level programming language
- Microsoft Small Basic
- Scratch (programming language)
Further reading 
- Learning to Program with Alice, Wanda P. Dann, Stephen Cooper, Randy Pausch; ISBN 0-13-187289-3
- An Introduction to Programming Using Alice, Charles W. Herbert; ISBN 1-4188-3625-7
- Alice 2.0: Introductory Concepts and Techniques; Gary B. Shelly, Thomas J. Cashman, Charles W. Herbert; ISBN 1-4188-5934-6
- Starting Out with Alice: A Visual Introduction to Programming; Tony Gaddis; Pearson Addison Wesley, 2007; ISBN 978-0-321-47515-2
- Virtual World Design and Creation for Teens; Charles R. Hardnett; Course Technologies PTR, 2009; ISBN 1-59863-850-5, ISBN 978-1-59863-850-9
- Official website
- Old version of Alice (Alice 99)
- Nontechnical encyclopedia article about Alice on kids like . info
- Basic tutorial for Alice
- Stephen Cooper's research
- Storytelling Alice Download