Alice is an exciting new software tool that enables users with little or no computer experience to create three-dimensional, animated virtual worlds, like a modern animated film or video game. It is free software, developed at the University of Virginia and Carnegie Mellon University. In August of 2003 the National Science Foundation awarded a grant to a team of faculty members from several colleges and universities to explore the effectiveness of Alice in teaching computer programming in the community college. Their work promises to have a noticeable impact on developmental education. This article includes a brief introduction to the notion of algorithms, object-oriented programming, and the Alice software, along with a description of the NSF-funded project and a few conclusions. It is intended to be a qualitative introduction to the topic rather than a quantitative analysis of the effectiveness of Alice.
Algorithms, Objects and Alice
Simply put, an algorithm is a step-by-step process. Sometime in the ninth century of the Christian era, a scholar named Muhammad ibn Musa al-Khwarizmi (موسى الخوارزمي) came to live and work in the City of Baghdad. Al-Khwarizmi means from Khwarizm, (Arabic: خوارزم, Russian: Хорезм, Uzbek: Xorazm) in what is now Uzbekistan, which was his ancestral homeland. He was one of many scholars brought to Baghdad by the Caliph to form what became one of the world’s first modern universities. Al-Khwarizmi wrote several important books on mathematics, geography, and astronomy, but perhaps his most important work was his second book, al-Kitab al-mukhtasar fi hisab al-jabr wa’l-muqabala (الكتاب المختصر في حساب الجبر والمقابلة), in which he presented a method for solving mathematical problems by balancing equations that came to be known as algebra. (Al-jabr = algebra.) This was only one part of his systematic approach to solving math and science problems, known, in various languages as the method of al-Khwarizmi, and from which we get the Latinized term algorithm.
According to the French writer and historian Andre Allard (1992), almost all Western ideas about mathematics, and hence almost all of modern science, technology and engineering, were derived in part from seven critical texts written during the 12th century and widely circulated through Europe in the centuries that followed. All seven of those books quote extensively from al-Khwarizmi’s second book.
A computer program is a step-by-step set of instructions telling a computer how to perform a specific task. As such, every computer program is an algorithm. Students in a good computer programming course are consciously learning about the logical structure of algorithms and techniques for organizing algorithms that can be traced back to al-Khwarizmi more than a thousand years ago.
In order to help manage the growing complexity of computers and their algorithms, computer scientists have introduced the notion of objects and object-oriented programming. An object is anything that can be represented by data in the computer’s memory and manipulated by computer programs. It is possible for modern computers to manipulate many objects at the same time. An object can be something in the physical world or even just an abstract idea. An airplane, for example, is a physical object that can be manipulated by a computer. A student’s grade point average is an example of an object that is not a physical object.
The data that represents the object are organized into a set of properties. Each property describes the object in some way. The programs that manipulate the properties of an object are known as the object’s methods. We can think of an object as a collection of properties and the methods that are used to manipulate those properties. This modern approach to computer programming is known as object-oriented programming, or OOP for short.
Alice is an object-oriented system of programming. The objects in Alice exist in a three-dimensional virtual world, much like a modern video game. In some ways, Alice is just like other modern object-oriented programming systems that use languages such as Java, C++, or Visual Basic, and in some ways it is different. The Alice language has a grammar and syntax like other programming languages, but it is constructed so that students create methods by assembling tiles containing instructions and references to objects. This allows students to concentrate on learning about the ideas of computer programming and algorithm development without having to worry about the details of a strange new language as they do so.
There is some evidence to show that one-third or more of all students who take an introductory computer course fail because of difficulties with programming languages (Lemut, et al., 1993). Alice helps to bypass this problem. The available evidence also indicates that once students learn about the ideas of programming and algorithm development, then language becomes much less of a hurdle (Moskal, B., Lurie, D. and Cooper, S. 2004).
The virtual world of Alice is one that students can see. Like the real world, it has three-dimensional space (and time), and the objects have properties just like physical objects, such as color, size, position, direction an object is facing, and so on. Alice has a “camera” that allows us to see its virtual world on a computer screen, just as we might view a movie or a video game. In a sense, the abstract ideas that students are manipulating through their programs are made more concrete in Alice because they can see the effects of their programs just as we see the world around us.
This ability to see what happens to objects in a virtual world also provides students with rapid feedback. If we try to program a white rabbit to run around in a circle in our virtual world, and instead it simply stays in one spot and spins around in a circle, we can see that happening on the screen. We can get instant feedback from viewing the way Alice runs the programs we have created. Not every programming system is so easy to use. Often it is necessary to go through a process known as “compiling” before we can run a program.
So, there are three things that make it easier to learn programming with Alice than most other systems of programming. First, Alice is constructed in such a way that students do not need to learn the grammar and syntax of a strange new language and can instead focus on the concepts of programming and algorithm development; second, Alice provides visual feedback that allows students to see the effects of new programs; and third, Alice provides rapid feedback shortening the creative cycle of conceptualization, implementation, and results.
Alice is also fun and interesting to use, which never hurts when one is trying to learn something new. In fact, it may be critical to effective and efficient learning. The educational psychologist Jerome Bruner (1960) has shown that complex bodies of knowledge, such as the ability to develop algorithms to solve technical problems, are best taught if they are introduced gradually, in a playful way, leading into a long and engaging spiral of learning. The source of the name “Alice” is itself somewhat related to this concept. The name Alice comes from Lewis Carroll’s two Alice books about Alice in Wonderland. It was chosen because the creators of the software wanted a name that was easy to remember, early in the alphabet, and conveyed a sense of the fun and playfulness associated with virtual worlds. The second page of the original manuscript for Alice’s Adventures in Wonderland (now in the British Museum), describes how Alice began her adventures: “Alice started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it . . .”
Howard Gardner (2001), in describing Jerome Bruner for the anthology Fifty Modern Thinkers on Education, wrote: “Jerome Bruner is not merely one of the foremost educational thinkers of the era; he is also an inspired learner and teacher. His infectious curiosity inspires all who are not completely jaded.” This sense of playfulness and curiosity, whether it is the “infectious curiosity” of Bruner or the “burning curiosity” of Alice chasing the White Rabbit, seems to be an important part of learning and effective teaching that can easily be neglected in technical courses. The Alice software can bring us back to that in computer science education.
Users of Alice do not create programs; they build virtual worlds by populating the world with objects and creating methods that manipulate those objects. Some of the virtual worlds are narrative worlds, in which a story unfolds on the screen with little or no user interaction. Others are interactive worlds in which the user controls objects and events, more like a modern video game. Hundreds of built-in objects are contained in a gallery that is part of the software, while many more are available in Carnegie Mellon’s free online gallery, including animals, people, buildings, vehicles, plants, and environmental elements, such as mountains, a frozen lake, and a desert island.
The NSF-ATE Alice Project
The NSF-ATE funded Alice project started on September 1, 2003 and was originally scheduled to continue through August 31, 2006. It has since been extended for an additional year. There were five goals for the project:
A team of faculty members from the Community College of Philadelphia in Pennsylvania, Camden County College in New Jersey, and Tomkins Cortland County College in New York are working under the direction of Stephen Cooper from St. Joseph’s University, Wanda Dann from Ithaca College and Randy Pausch from Carnegie Mellon University, who had developed curricular materials to teach introductory programming using Alice. Their materials have since been published as the textbook Learning to Program with Alice (Dann, W., Cooper, S., and Pausch, R., 2006). I have written or co-written two other textbooks based on the work of the project. One is An Introduction to Programming with Alice (2006) by myself, published in March, 2006, and a third book Alice 2.0: a Brief Introduction (2006) by Gary Shelly, Tom Cashman and myself, due to be released this Fall.
The three community colleges participating in the project were selected because they represent the variety of community colleges in the United States: Community College of Philadelphia with roughly 40,000 credit and noncredit students in an urban environment; Camden County College with a little over 12,000 students in a largely suburban environment in Southern New Jersey, and Tompkins Cortland Community College, serving 3,000 students in a rural area of central New York State.
Activities included the development of additional curricular materials, training faculty at the community colleges in the use of Alice, introducing Alice into the curriculum, and measuring its effectiveness. At Community College of Philadelphia, for example, faculty have been using Alice in introductory programming courses and an Alice module has been tested for computer literacy and applications courses. A new course, Computer Information Systems 102 – Programming and Problem-Solving with Alice, which will target students who place below the college level in math and English, is under development. Bill Taylor at Camden County College has already developed a similar course, which he and his colleagues have been teaching for the past four semesters. Sharon Wavle at Tompkins Cortland Community College is teaching online sections of introductory computer courses using Alice.
Wanda Dann and Steve Cooper have been strong advocates of the storytelling approach to Alice; their textbook focuses on this approach to learning computer programming. Their students implement short stories or narratives using Alice; however, their text, the seminal work in the field, includes the creation of games as well. Caitlin Kelleher is another researcher working with the storytelling aspect of Alice. She created the tutorials included with the Alice software, and is just finishing her doctoral work on Alice at Carnegie Mellon University, where she has spent the last several years researching the impact Alice can have on adolescent girls. Her work is based on the thesis that female students tend to make career decisions much earlier than male students, and that the use of Alice can attract more women to computer programming and related disciplines. Her work also shows that girls are more interested in the story-telling aspect of Alice than in creating simulations or video games, which boys seem to prefer.
My textbook, An Introduction to Programming with Alice, focuses on an engineering approach to Alice, in which students are taught to design a solution to a problem as a collection of modules that solve smaller, more manageable parts of the overall problem. They can then implement and test their modules as individual methods for Alice objects, and assemble the parts they have created into software that solves the original complex problem. Piaget (1971) has shown that students should be able to learn abstract problem-solving techniques by the time they reach adolescence, from 13 to 18 years of age, but many secondary and post-secondary curricula do not include such instruction. The use of Alice may be a good way to change that.
The story telling and engineering approaches to Alice are not mutually exclusive; both introduce students to concepts of problem-solving and programming in a casual, almost playful way, gradually adding more sophisticated concepts as the semester progresses, much in line with Bruner’s ideas about the spiral curriculum.
Both approaches also foster the kind of socially-based learning in a structured environment suggested by Lev Vygotsky and others. Vygotsky (1978) maintained that “Psychological development and learning are socially based.” He argued that many complex skills cannot be acquired by individuals alone, but through interaction with teachers and peers slightly ahead of them on the learning curve. He advocated the study of social relations as a way to better understand learning and thus become better educators. Proponents of activity theory have developed his ideas further, often focusing on the way in which the tools one uses in various roles in society shape both the society and the individual. University of Pennsylvania anthropologist Fred Erickson (1987) has advocated that teachers become more aware of the social processes within the classroom, and use them to foster more collaborative learning, such as through the use of group projects. Alice is a tool that educators can use to improve instruction in programming and problem-solving by invigorating the social environment of the classroom under the teacher’s control.
So far, research on the use of Alice shows that it attracts new students, particularly female and minority students, to what the National Science Foundation calls the STEM disciplines – Science, Technology, Engineering and Mathematics; increases student success in the course and in follow-up programming courses; and increases student retention in computer-related curricula. Perhaps most surprisingly, the data show that students who take a single course using Alice are more likely to stay in school whatever their major, and that they achieve a higher grade point average than students who do not take a course in Alice (Moskal, et al., 2004).
Bill Taylor’s work at Camden County College is the first specifically targeted toward developmental students. His preliminary reports to the NSF, cited in Moskal, et. al.(2004) , are encouraging, as is anecdotal evidence from students and teachers at Camden, but more work is needed to specifically evaluate the lasting effect of Alice on developmental students.
Conclusions
Algorithms are important – very important. In fact, they are the foundation of Western science and technology. An awareness of algorithms, their development, and their use in problem-solving might help students to be better thinkers, or at least, to be more organized and persistent in the way they think about solving problems.
Bruner has shown that complex technical ideas, such as algorithm development and problem-solving, are best taught if they are introduced gradually, almost playfully, leading into a long and engaging spiral of learning. Vygotsky (1978) and others claim that these skills do in fact need to be taught, and that navigating the “zone of proximal development” is a social process. Piaget (1971) says that our students are ready for learning about such things in adolescence, yet most college and university faculty will tell you that many of their students are not so prepared. This is especially true of our developmental students.
Alice is a new and exciting tool that can attract students to courses about programming and algorithm development, and then provide them with the opportunity to persistently and successfully solve problems of increasing complexity while studying the process of problem-solving itself. It can also be used to foster a positive social environment in the classroom. More work needs to be done, but preliminary investigations into the use of Alice with developmental students shows that it seems to have a positive impact on a significant percentage of those students.
A long-standing question in education, in developmental education in particular, centers on whether or not we can teach someone how to think. There are two metaphors for teachers that have been used in describing how computer technology might affect education. Some people posit that a teacher could be “a guide on the side” rather than “a sage on the stage.” Another way to think of a teacher is as a gardener who cultivates the thinking ability of each student. To do so, the teacher must also cultivate a positive learning environment for the student. The successful teacher cultivates a shared curiosity essential to effective education. Alice can be a very powerful tool toward that end.
Notes
1 For more information on Alice, research on the use of Alice, and to download the software, see http://www.alice.org
2 National Science Foundation Grant # NSF-ATE ATE 0302542, available online via http://www.nsf.org
3 For more about Al-Khwarizmi and his work see:http://www-groups.dcs.st-andrews.ac.uk/history/Mathematicians/Al-Khwarizmi.html
4 Alice’s Adventures in Wonderland and Through the Looking Glass and What Alice Found There
5 Caitlin Kelleher’s dissertation may be accessed via http://www.alice.org upon publication
References
Bruner, J (1960) The Process of Education. Cambridge, MA: Harvard University Press, [1977 reprint]
©Copyright 2006. Contact author for permission
Maintained by Jay Howard,Sept 2006