Alice Programming Resources
Alice is a free, educational programming environment designed to teach students the basic concepts and theories behind programming, without bogging them down in complicated coding syntax.
Using the Alice program, students can create 3D animations and games within a drag and drop development environment.
In the Alice environment, students can select a world (or build their own) and add 3D objects (people, animals, building, etc) from a large online gallery.
Each object contains several built-in methods, which students can use to manipulate the object and include in their programs.
For example, an object of a knight may include various methods for swinging its sword in different ways. By dragging these methods into a programming window, students can "code" instructions for each object within their world, just as you would in a traditional programming environment.
Alice objects can be programmed using several traditional programming features, such as if-else statements, loops, and even concurrency.
For example, the software provides a list of questions an object can "ask," such as whether or not it is within a certain distance from another object. By dragging these questions into the programming window and adding methods to them, programmers can create complex character movements and interactions, such as a knight drawing its sword when an enemy is nearby.
Alice is maintained by the Stage3 Research Group at Carnegie Mellon University.
Alice has a small, but dedicated community of users. Given its educational nature, many Alice users are more than happy to help each other out with learning the environment, improving their code, engaging students, and even developing lesson plans.
Alice.org: the official site of the Alice software contains download links for current and previous versions, an introduction to the programming environment, a list of resources for teachers, and community links.
Alice Forums: the official forum for Alice programmers hosts pages for requesting information, engaging in general discussion, sharing educational resources, and getting feedback from the community. There's also an area to report issues and make suggestions for future enhancements.
Teacher Lesson Plans: created by teachers who attended Alice workshops at Duke University, this collection includes Alice-based lesson plans for 3rd through 12th grade, covering an impressive range of subject areas including math, science, foreign languages, art, history, English, ESL, business, and computer applications.
Most online tutorials for Alice are very accessible, since they're written for teachers or their students. Many of them include video lessons and devote a lot of time to helping students become familiar with the software environment.
Duke University's Alice Tutorials: this site hosts free tutorials developed during several years of Duke's summer programming workshop for middle and high school students. It includes slide-based and video tutorials for Alice 2 and Alice 3, as well as several examples of videos and animations developed using Alice.
Virtual Training Company: this is a paid tutorial, but you can view the first three chapters (over 15 mini lessons) for free, and then decide if it's worth the investment. These video lessons cover the very basics, such as installing software and saving your projects, to the more complex concepts of object-oriented programming, programming structures, and creating event-driven programs. Each topic is broken down into a series of short video lessons.
Alice Tutorials: Computer Programming in 3D: this blog-based tutorial series includes short, visual introductions to the software environment. While light on programming, it's a good starting point for becoming comfortable with the application.
Introduction to Alice Programming by Developer.com: this is one of the rare Alice tutorials designed for experienced programmers. Along with an overview of the Alice languages and an introduction to creating worlds, it includes extensive, in-depth guides to Alice programming features, including creating and manipulating objects, working with parameters, using methods, and more. If you're looking for a tool to use in the classroom, this isn't it. But if you're a programmer who wants to understand exactly what your kids are working with, this is a must-read.
Books on Alice tend to come in two varieties. The first type are aimed at young programmers, typically in middle school or high school, who are simply trying to gain an understanding of programming concepts and logic, not learn a traditional programming language.
The second are designed as supplements to college-level CS classes. The latter tend to be much denser and often include additional elements, such as comparisons to or examples of traditional code. However, all of the Alice books featured below are written for new programmers.
Virtual World Design and Creation for Teens by Charles Hardnett: as the name implies, this text falls into the former category of books for school-age kids. The book guides students through step-by-step tutorials for creating story-lines, building an animated world, and creating characters for animated stories, games, and movies.
Getting to Know Alice (Code Power: A Teen Programmer's Guide) by Jeanne Nagle: created specifically for middle school classrooms, this book provides a general overview of Alice, including why it was created and how it can teach programming concepts without teaching code. Rather than provide a step-by-step guide to programming, it leads students through several simple examples and encourages them to take what they learn and apply it to their own projects.
Learning to Program with Alice by Dann, Cooper, and Pausch: designed for college students at the pre-CS1 level, or to be used in the early part of a CS1 class, this book covers the fundamentals of Alice programming and general programming theory, while also providing an introduction to traditional programming languages by allowing students to view the code they created visually in a Java-based syntax.
Alice 3 in Action: Computing Through Animation by Joel Adams: this is another supplemental book, meant to provide additional lessons on basic programming and programming theory within a college-level CS class.
Whether you're looking to introduce younger children to programming or provide an introduction to a college-level CS curriculum, Alice offers an easily-accessible overview of basic programming principles and theories.
After using Alice, when students are introduced to a traditional, text-based programming language, they will easily be able to combine their knowledge of programming logic with the new syntax they're learning.
Unlike many other visual programming languages for kids, Alice includes plain-text "coding" that new programmers can follow along with, helping to bridge the gap between a visual language and a text-based environment.
Further Reading and Resources
We have more programming guides, tutorials, and infographics related to coding and developer resources:
Logo Programming Resources: learn all about one of the earliest teaching languages — and the turtle!
Scheme Programming: a very old language, often used to teach high school students how to code.
BBC Basic: learn all about the Basic programming language and the television series that inspired a generation of UK programmers.