Final Report: Adventures in Alice Programming
CRA - CDC DMP Duke University Summer Internship 2008
Gaetjens Lezin
Mentor: Professor Susan
H. Rodger
Adventures in Alice Programming Project
Abstract
The Adventures in Alice Programming Project of 2008 at Duke University
ran during the months of June and July. The project involved two main events. First, there was a two-week workshop to
teach Alice and investigate the use of Alice in middle schools and high schools. The second was two third week options for teachers
to develop lesson plans timed with two one –week student camps. The second major event involved two separate groups of students
and teachers for the first and second week. The goal of the project is to obtain data about attitudes and how well kids and
teachers are able to learn Alice. A pre and post test was given at the beginning and ending of each event. The results
are in the process of being reviewed at an offsite in Colorado. The first set of tests evaluated knowledge on Alice material,
the second was a survey about attitudes toward computing.
Related Prior Work
Previous studies have shown the number of students
choosing computer science majors has been declining dramatically. In one article published by Professor Rodger of Duke University,
alarming statistics about this issue were reported. One, “According to the Computing Research Association’s fall 2000 report,
23,416 students selected Computer Science or computer engineering as their intended major”. [6] This is especially disturbing
because of another statistic from the U.S. Bureau of Labor Statistics. They expect a 1.15 million rise in the number of IT jobs
over the decade 2002-2012. It is apparent that something needs to be done to address this issue. The Adventures in Alice
Programming Project is exploring one way of approaching a solution. The Alice approach aims to reach out to students in grades
5 – 12 with a wide spectrum of ethnicities both male and female. Ultimately the Adventures in Alice Programming Project would
like to influence a diverse group of students. Groups such as women, minorities, and underrepresented groups are the focus [6]. Previous publications written about Alice have stated educational levels should be considered when attempting to apply the Alice approach.Problem solving and understanding algorithms are common hurdles that novice programmers have difficulty overcoming [2]. The
authors’ stress, in order to develop progressive innovative instructional methods, researchers must dig below the surface. “It
is easy to say that they do not know how to solve problems. But this is too simplistic.”[2] This quote makes it clear that a
total solution must consider all levels of education and educational backgrounds. There needs to be an evaluation and serious
consideration of what level of schooling and difficulty of classes the students have taken. This will benefit the child because
they will start off at an appropriate level, not one that is too advanced for them or not advanced enough.
The Alice approach
is not the first visual tool used in teaching novice programming. [3] “In the past decade educators have developed a myriad
of tools to help novices learn to program.” [3] A few named in the article are JPie, Karel Universe, Raptor, Iconic Programmer,
and Visual Logic. This statement leads to a few distinguishing questions. How is Alice different? Why is it
better? Can it really influence the future of computing, so that students don’t shy away from computing majors because of a
fear of programming? These questions are addressed in a publication by Cooper, Goldman, Carlisle, McNally, and Proulx. In
summary it relays the idea of the main educational benefits of Alice consisting of the following major points; one, ability to create
movies or computer games [3] (referred to as “programming with purpose” in the reading.) Two, Alice avoids the hassle of syntax errors
and compiler messages that quickly confuse novice programmers [3]. The drag and drop ability of Alice makes this possible. Three, Alice is always in a state where it can run [3]. This allows students to see exactly how their code affects the objects
in their program. The college professors who have used visual teaching tools such as Alice in their courses gave this statement:“With immediate feedback, we have seen students understand concepts more and our course can cover more concepts without losing valuable
hands-on experience.” [3] The best part of the three features mentioned above is their abilities to motivate. Attitude
is very influential when students are deciding to pursue careers not only in computing but all careers. The same article reports,
“we have found that the ability to direct your own movie is extraordinarily attractive to a wide range of students”. [3] Alice
facilitates directing 3 - D movies. Certainly this is a direct result of the features mentioned above. This demonstrates
why Alice is a great tool that is a better choice than other visual tools for accomplishing the ultimate goals of the Adventures in
Alice Programming Project.
Other publications describe, in
further detail, specific programming concepts that Alice would be a great tool to use when teaching. These include looping and
recursion, algorithms, methods, functions, and object oriented design strategies. A publication written by Dann, and Pausch,
does a great job of contrasting Alice and other tools that are used to teach recursion. It also gives specific Alice examples
of Tail, Multiple, and Structural recursion [4]. This article shows the flexibility of Alice to approach teaching solutions
from different directions with different examples. A different publication by Dann, Cooper, and Pausch demonstrates how the
Alice approach can introduce many fundamental programming concepts. These are basic ideas that need to be learned so a student
can have a solid foundation in computer science. They introduce teaching approaches for introducing object level methods as
well as static methods called from main in a java program. In the writing they are described as “character-level,”
and “World level.” [5] Further reading reveals teaching strategies for functions, parameters, and variables.
Introduction
Alice
is a 3-D virtual World environment. It allows novice programmers to create 3 – D animations, movies, and games. The Adventures
in Alice Programming Project aims to explore teaching methods and develop Alice material that can be adapted into school curricula. The goal of injecting Alice into curricula across the country is to increase the number of students who choose computer science majors. It has been accepted across the members of this field the number of students choosing computing as a path for higher learning has
been decreasing. The Adventures in Alice Programming Project is pioneering one possible solution to this problem. This
research project will collect data across the country. The following is a list of participating sites;
Funding for the Adventures
in Alice Programming Project is provided by the National Science Foundation through grant number Grant ESI-0624642. Additional
funds were provided by IBM.
Teacher Training
The first major event of the Alice research project was the teacher training
workshop. There were two sets of high school and middle school teachers. Each set had to attend 3 weeks of Alice Training. The first week of the training workshop ran from June 16 until June 20. Professor Rodger of Duke University and Professor Don
Slater of Carnegie Mellon University conducted the event for the first week. Each day the teachers received training on Alice
strategy and technique. Lessons were presented either in a workshop format, with short lecture explanations followed by hands
on experimentation, or with teachers and students building a world along with the presenter. The same format was used for the
student camp and extended teacher workshop. The research teaching assistants consisted of myself and four Duke undergraduate
students; Deborah Nelson, Jenna Hayes, Henry Qin, and Ruthie Tucker. Each one of us also gave several presentations over the four
weeks. During the weeks of training we assisted whoever was giving a presentation by walking around and answering any questions
the teachers had. It was important to make sure every lesson ran from start to finish with as little interruption as possible. This would allow the presenters to cover as much Alice material as possible. At the same time, we had to make sure the number
of teachers left behind was kept to a minimum. On Friday Professor Rodger organized an animation show in which all the teachers
demonstrated the worlds they had been working on. This was a very useful observation tool, it became apparent what programming
concepts they were actually using and we could see if they were applying what we taught them throughout the week. Through the
course of the first week topics covered included; [6]
The second week of the
teacher training workshop ran from June 23 to the 27th. The teachers made noticeable progress in the first week so this week
involved more involved Alice concepts. Topics covered during the second week were the following; [6]
After
the two weeks of teacher training, the Adventures in Alice Programming Project conducted a one week student camp and extend teacher
workshop. The event began on July 7 and ran until July 11th. During this most of the teachers focused on creating multiple
lesson plans to meet North Carolina Public School standards. The lesson plans they created can be found on the Alice Workshop
webpage. The students who attended this first camp session were taught much of the same lessons the teachers were. The
format was the same, (lecture style with students following along.) They were given free time to build their own unique worlds
which they demonstrated during the middle of the week and at the end. The final week of the Adventures in Alice Programming
Project training camp ran from July 14 to the 18th. A different set of kids and teachers attended this event. Everything
else remained identical to the previous week. The reason for this was to remain consistent for the research study.
Data
Collection and Organization
The second portion of the Adventures in Alice Programming Project involved a closer examination of
the Alice worlds that the students created. I spent a few days organizing and building a data base using Microsoft access to
hold the information. The other research assistants collected all the data. They combed through every Alice world that
each student created to amass a wide variety of information. We all collaborated with Professor Rodger to determine the type
of information we needed to extract from what we collected. A few prominent points we looked for were Alice structure statements. These are specific terms used in the Alice programming language. For example, do together, for all in order, for
all together, BDE (beginning during end) events to name a few. The research team also looked for programming related concepts
such as loops, class variables, method variables and general coding style. The graph below shows different concepts we searched
for and how many students used it either once, twice, three, four, or four plus times. This chart makes it easy to recognize
what the children learned, and what they actually were interested in using in their own animations.
(Chart 1)
(Chart 2)
The Adventures in Alice Programming Project has shown us that our students for the most part paid attention and completed
the tutorials we taught them. Although there were a few who did not, an overwhelming percentage did follow along. I believe
this is because they enjoy learning to create their own animations to fulfill story board ideas that they come up with. Alice
provides an easy way for them to do that and as we can see in our chart they are willing to learn how to use the Alice features. Only time and more research will show if the Alice approach will in fact change the statistics and result in more students entering
computing majors and pursuing computer related careers. The Alice Research Project 2008 at Duke University was a small part
of a big effort to work towards a total solution for solving the growing problem.
Appendix
[3]
Cooper, Stephen, Kenneth J. Goldman, Martin Carlisle, Myles McNally, and Viera Proulx. Tools for Teaching Introductory Programming:
What Works? 2006. <http://dsys.cse.wustl.edu/resources/papers/gross-sigcse-2006.pdf>.
[2] Cooper, Stephen, Wanda Dann, and Randy
Pausch. ALICE: A 3-D TOOL FOR INTRODUCTORY PROGRAMMING CONCEPTS. Apr. 20. July 2008 <http://www.sju.edu/~scooper/alice/ccscne00.pdf>.
[4] Dann, Wanda, and Randy Pausch. Using Visualization To Teach Novices Recursion. July 2001. <http://www.sju.edu/~scooper/alice/p109-dann.pdf>.
[5] Dann, Wanda, Stephen Cooper, and Randy Pausch. Objects: Visualization of Behavior and State. June 2003. <http://www.sju.edu/~scooper/alice/p109-dann.pdf>.
[6] Rodger, Susan H. "Adventures in Alice Programming." July-Aug. 2008. July 25 <http://www.cs.duke.edu/csed/alice/aliceinschools/workshop08/schedule.php>.
[1] Rodger, Susan H. An Innovative Approach with Alice for Attracting K-12 Students to Computing. Recent Paper Publications for Susan
H. Rodger. 7 May 2007. 14 July 2008 <http://www.cs.duke.edu/csed/rodger/papers/ibmmay07.pdf>.