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:
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.