are gaining traction, however, through
new pedagogic approaches such as
Peer-Led Team-Learning, CS Unplugged, Supplemental Instruction,
Project-Based Learning, and Problem-Based Learning.
These three issues are the driving
force behind the creation of Alice 3,
currently under development by the
Alice team at Carnegie Mellon. Dennis
Cosgrove, lead architect of Alice 2, is
also the project scientist for developing the Alice 3 software.
Alice 3 code editor, scene editor, and runtime displays.
children must learn/know. Jeanette
Wing, in her manifesto, Computational Thinking, argues analogously
for the ubiquity of computation, as a
skill that all must master.
6 She adds
computational thinking as a fourth
“analytical ability,” to reading, writing, and arithmetic, which all young
people should be exposed to and
given the opportunity to master. Certainly, it is interesting to explore how
Alice helps students gain capability
in computational thinking abilities,
and we describe our work with Alice
in this column.
The second issue raised is the importance of context. We believe context helps to communicate the “magic
and beauty” of our discipline. Exciting
work is going on in this space. There is
much excitement about the potential
for robotics. From Lego Mindstorms to
Scribblers to Myro and Chiara, the possibilities offer great potential. Guzdial
and Ericson have discovered that working with media is fun for students who
love to build their own (scaled down)
versions of Photoshop and Audacity.
Alice (in 3D) and Scratch (in 2D) use
animation, storytelling, and game authorship as a context in which to entice students toward computing. Lily-Pad Arduino is doing much the same
through e-textiles.
In many ways, the third issue is
the most challenging for computing
educators. Attracting a more diverse
student population and maintaining
students in undergraduate computing programs should involve a teaching and learning strategy that begins
with the concrete in a context familiar
to students and then gradually leads
to an understanding of the abstract.
Our discipline is all about abstraction.
But it is not clear how to begin with
the concrete and then move to the
abstract, particularly in introductory
computer programming courses that
use languages inherently dependant
on abstraction. Exciting innovations
Alice 2 brings
a different form of
magic and beauty
into teaching and
learning fundamental
programming
concepts.
A Brief history of Alice
Under the leadership of the late Randy
Pausch, Alice was originally developed
as a rapid prototyping tool for virtual
reality animation, complete with head-mounted devices and glove sensors.
Pausch used the original Alice in his
Building Virtual Worlds course, where
students from different disciplines
(CS, design, and art) had to work together in small groups, under short
deadlines, to build and demonstrate
virtual worlds. The students thought
they were learning about virtual reality, but they were also learning how to
work together with other people in a
way that others would respect them
and keep working with them. Encouraging students to learn one thing
while they believe they are learning
something else is what Pausch called
a “head fake.” The course became so
popular that it inspired a master’s degree program in the Entertainment
Technology Center at CMU.
In the late 1990s, we joined with the
Alice team to pursue a dream of evolving Alice into an educational software
tool that could be used to gently introduce students to computer programming. The goal was to create a new
version of Alice that would introduce
students to object-oriented programming concepts using concrete, visual
objects in a 3D graphical environment.
The concrete objects would be things
that are familiar in their real world:
houses, trees, animals, people, cellphones, but in a virtual world where
a person can be scared by a spooky
sound while riding a bicycle home after sports practice, and turn to see…
imagination takes over…and students
spend hours learning how to program.
The head fake is still there. Alice 2
provides a 3D programming environ-