Use of ALICE programming language
to aid reading
comprehension and to introduce computer science skills in elementary
The demand for computer scientists is growing much more rapidly than schools are producing qualified candidates to fill the growing industrial need. Interest in computer science as a major is declining among incoming students nationwide; the percentage of college freshmen that listed computer science as their most likely major dropped 70 percent from 2000 to 2004. The statistics regarding females are even more staggering. Although there are more females than males enrolled in colleges, only 28 percent of bachelor degrees in computer science are awarded to females.1 Many studies have indicated that most students who drop the major, do so during the freshman year, and that the number of students remaining in the major decreases drastically with every successive year in college. The demand for computer scientists will continue to be a problem until the causes for the decline in student interest have been addressed. Causes for the decline in the number of students graduating with computer science degrees have been attributed to a number of factors, such as students entering the major without previous programming experience.,
Illiteracy in America is growing at an alarming rate. As of 2003, the figures, reported by the U.S. Department of Education as a result of the National Adult Literacy Survey, include:
Duke University, along with five other sites: San Francisco, Mississippi, Denver, Virginia Beach, and Charleston, is actively working to create solutions to the shortage of computer scientists with support from the National Science Foundation (NSF), Grant ESI-0624642 rant support from the National Science Foundation. As part of this grant, Professor Susan Rodger of Duke University is facilitating a workshop held at Duke during the summer of 2008 to provide middle- and high-school students with training to integrate the Alice programming language into the curricula offered in various North Carolina public schools. Teachers will be trained for one week in Alice programming, and will then spend two weeks on developing curriculum materials. They will also have opportunities to test some of those materials on students attending a summer camp.
The goal for this project was to address declining interest in computer science by exposing students at the elementary school level to an animated Alice World that could be modified by teachers or students. This would serve the dual purpose of providing young students with computer programming basics and boosting reading comprehension since the animated Alice World would be devised to increase reading comprehension.
Alice has already been shown to have a positive effect on at-risk computer science students at the collegiate level; and because of its animated features, it seems likely that younger students would also benefit from being introduced to Alice.
This project primarily involved designing a short program to provide primary and secondary school teachers with some techniques and tools for teaching programming with Alice to their students. The possibilities included a supplement to a math or history lesson. As the project got underway, however, it became apparent that a tool to facilitate reading comprehension would be the focus for this project.
Alice is a young programming language, having been developed in 2002 by Professor Randy Pausch and his team at Carnegie Mellon University, and is available as a free download. Although originally designed to be used in conjunction with another programming language, it has evolved into a tool that serves as a user-friendly introduction to the concepts that define computer science.
Its popularity and success as an introductory learning tool is most likely attributable to Alice’s drag-and-drop interface. One of the most frustrating things about learning how to program is discovering that your program doesn’t work due to a syntax error, because they are so difficult to locate and the debugging process can be so very time-consuming. Since the syntax in Alice is in drop-down menus, the catalysts for frustration are greatly reduced.
Some of the concepts of object-oriented computer programming are difficult to grasp1. Since Alice uses 3-D virtual representations, it lends itself to visualization of complicated concepts; Alice helps make abstract concepts more palatable to novice programmers.
As an educational tool, programs using animated Alice Worlds can be used in grammar school to enhance multiplication skills, for example, or to help teach a history lesson. There is also a version of Alice (Storytelling Alice) that can be used to teach computer science to younger students. Alice animations can also be used to create short games or quizzes that aid reading comprehension, which is the way in which Alice (version 2.0) was utilized for this project.
In July 2007, I assisted Dr. Susan Rodger at a workshop6 that she held at Duke University to introduce high school girls to the Alice programming language. By the end of the morning, every participant had followed the given directions and created an animated scene involving a couple of snowpeople. This workshop, because of the way in which Alice is structured, helped the girls learn about the distinctions between the concepts of methods and events (something which can take considerably longer in a “regular” beginning programming class), and recursion (see Appendix I). Prior to the July workshop, Dr. Rodger had taught a similar workshop for younger females (4th-6th grades), also with success, although the high school students were able to cover more material in the same amount of time as their younger counterparts.
There have been a number of investigations into what works and does not work in teaching computer science, some of which have been pioneered by the authors, of Learning to Program with Alice,9, as well as inquiries into the apparent decline in Computer Science among students, despite the expected future demand for IT professionals. Professor Rodger and a host of other professionals have also reported extensively on ways to integrate algorithm animations into computer science courses.,,,
Interactive Alice World Quiz To Enhance Reading
We met with three administrators of the Durham Public School System to discuss the possibility of preparing educators to teach Alice to their students (focus on grades 4-8), and Professor Rodger’s ideas were very well received. We met with Ron Wahlen, Executive Director of Instructional Technology, Janet Scott, Director of Science Grades 6-12, and Pam Sickles, Director of Match for Grades 6-12. Afterward, we met with Jan Riggsbee, Director of the Duke Elementary Teacher Preparation Program, and of the Program in Education (PiE), to discuss the favorable reception of Alice by Durham public school administrators and to determine how to best incorporate Alice into the teacher training program.
The decision was made to focus on creating an Alice animation based on the popular Magic Tree House children’s book series. I obtained four of the books from the series, based on some of the 3-D objects I had seen in the Alice galleries, and decided to create an interactive game-like quiz based on the first book in the series, Dinosaurs Before Dark. I wanted to create a game similar to ‘Jeopardy’ – it would be a board game where the players advance by answering questions correctly. Questions would be worth varying numbers of squares to move ahead. A wrong answer would move the player back a square. Before programming, the first task was to read the book and create a list of questions with their answers.
Another idea was to create a game in which the user could select one or two players, and they could each choose a pawn. The playing board environment would reflect various scenes from the books, such as an area that would include an oak tree and a tree house, resembling Frog Creek. Another section would be the interior of the tree house. Yet another area would have a hilltop looking down at a lake and the anatosaurus babies. Still another would show t-rex, etc. I also thought about juxtaposing colored shapes to create a path from start to finish.
Each correct answer would be worth 3 spaces along the path, and an incorrect response would move the pawn backward one space (with three tries total per question). Pressing the space bar would highlight the correct answer, without penalty. There would be no need to keep score, since winning would be obvious by reaching the end. A timer, however, might be necessary (treating the end of the timer the same way as pressing the space bar). Perhaps upon reaching the end of the path (i.e., winning the game), a flying reptile would pick up the pawn and fly him back to the starting position. The player would then be presenting with the option of playing again. After playing around with the program, I decided this was a little too ambitious a project, so I devised a more realistic animation. Instead of a board game, I decided that a multiple choice quiz would be the best way to go. Some of the roadblocks included how to display and increment or decrement the score.
I began to populate the AliceWorld with objects and quiz questions and created a method for scoring, then realized that I had forgotten to pass parameters. I incorporated nested loops to keep track of the iteration through the quiz questions and the number of guesses a player has used per question, then re-created a simple scoring system. Another problem involved how to display the instructions because the animated world would not stop when I pressed the key to show instructions. Repeated attempts at solving that problem by moving the instructions to a different view proved to be unsuccessful. Because I had already put in a lot of new information I didn’t want to go back to an earlier backup. Instead, I opened up an earlier backup and printed the code I had written and I reinserted it. It wasn’t perfect but at least I didn’t have to recreate the proverbial wheel.
I also wanted to create a different animation for each correct answer, but in the interest of time, I kept it simple and repeated the correct answer animation. As teachers become more comfortable with Alice, they can easily add more animations to DinoQuiz. I was finally satisfied with how the introduction worked but I was not certain about how to display the questions. If I continued as I did for question 1, the game would continue without waiting for user input. A similar problem was solved earlier by having the user input yes or no. That method was impractical for each possible choice of answer because it would have been very cumbersome and sloppy. My preference was to have a list (array) of correct answers and then iterate through to see if they were correct. (I mostly did the passing of parameters to set the game up according to whether Annie or Jack was clicked on.) However, as with the clicking of Jack or Annie, in no click occurred, the game continued anyway. Using Alice helped to clarify some ambiguities in my understanding of passing parameters and sharing them within various methods. I then worked on creating the arrays for the questions and answers. There was some confusion involving my backups which necessitated my creating new codes for both DinoQuiz and DinoQuiz New Format. I went back to the earlier version DinoQuiz because it had everything that I needed. I completed mot methods and arrays. I then had to figure out how to iterate through the questions and call the correct methods without causing errors.
The first screen introduces the quiz and instructs the user to either click on “next” or type “x” to skip the instructions and select a pawn. The instructions explain how to select a response to the questions, and outlines the scoring system. Some of the text changes color for emphasis, before proceeding to the screen for selecting the pawn. When the user clicks on an object (boy or girl), the chosen pawn displays a short animation before progressing to the quiz. Each correct answer earns two points, whereas the penalty for an incorrect or “I don’t know” response is one point (these can be changed by the teacher, as proficiency is gained using Alice); the lowest possible score is zero (no negative points). Currently, there are 13 questions loaded into DinoQuiz; however, adding more is a simple feat. Both an “I don’t know” and an incorrect response highlight the correct answer in an effort to help boost comprehension of the book.
After the last question has been responded to, the user is prompted with a question asking whether he or she wishes to view the game statistics (total questions, total points, number of questions answered correctly, incorrectly, or with an “I don’t know” response). The program will proceed to the statistics screen, regardless of the user’s response.
Conclusion and Future work
Learning basic programming strengthens critical thinking skills, and Alice, which is a graphical front-end for Java, virtually eliminates syntax errors, which are generally frustrating for everyone (even experienced and seasoned programmers, because they are so difficult to spot) provides an innovative tool for teaching basic computer science skills to young students. The ALICE process allows for demonstration of the basics of design and debugging in a novice-friendly environment that automatically minimizes syntax mistakes. My goal was to design and develop a children’s game in ALICE that could be utilized by a targeted elementary school (4th grade) teacher to reinforce reading comprehension. The premise is that the teacher could easily modify the program to match specific classroom needs, and can simultaneously be used as a hands-on tool for the students to experiment with programming.
Incorporating the use of Alice in grade school will help encourage young students to pursue computer science. At the very least, it will help build the critical thinking skills that are so necessary for success.
It would be nice to have future work include conducting a study of whether reading comprehension is actually improved in students that play the game. Perhaps quiz them on a book from the series and compare those results to the same students who take the animated quiz. Also, there can be two groups of students that have similar test-taking result histories, and have one group take the quiz created with Alice while the other group has the same questions on a paper quiz.
Future enhancements to DinoQuiz could incoude:
Also, teachers can add questions, and additional animations, or can have children do so in order to build and strengthen computer science and related skills, such as critical thinking.
for this internship was provided by the Computing
Association Distributed Mentor Project (CRA-W DMP). The objective of CRA-W DMP is to increase the number of women entering
studies in the fields of computer science and engineering. This highly
selective program matches promising undergraduate women with a faculty
for a summer research experience at the faculty member's home
Students are directly involved in a research project and interact with
students and professors on a daily basis. This experience is invaluable
students who are considering graduate school, providing them with a
view of what graduate school is really like and also increasing their
competitiveness as an applicant for graduate admissions and fellowships.
 Vegso, Jay. Interest in CS as a Major Drops Among Incoming Freshmen. May 2005. Computing Research Association. http://www.cra.org/CRN/articles/may05/vegso.
 Slater, Don. 3D Animation: Programming though storytelling. Carnegie Mellon University, 2006. http://www.cs.cmu.edu/~djslater/CS4HS_Alice_Intro.ppt.
 Davy, J. R., Audin, K., Barkham, M., and Joyner, C. 2000. Student well-being in a computing department. In Proceedings of the 5th Annual SIGCSE/SIGCUE Iticse conference on innovation and Technology in Computer Science Education (Helsinki, Finland, July 11 - 13, 2000). ITiCSE '00. ACM, New York, NY, 136-139. http://doi.acm.org/10.1145/343048.343145.
 Hagan, D. and Markham, S. 2000. Does it help to have some programming experience before beginning a computing degree program? SIGCSE Bulletin 32, 3 (Sep. 2000), 25-28. http://doi.acm.org/10.1145/353519.343063.
 Moskal, B., D. Lurie, and S. Cooper, Evaluating the Effectiveness of a New Instructional Approach. SIGCSE 2004, Norfolk, Virginia. March 2004.
 Carnegie Mellon University. Alice website. http://www.alice.org/index.php?page=downloads/download_alice.
 Carnegie Mellon Collaborates with EA to Revolutionize and Reinvigorate Computer Science Education in the US. Press release from Alice. March 10, 1996. http://www.alice.org/index.php?page=sims_announcement/sims_announcement.
 Kelleher, Caitlin. Animations for Storytelling. http://www.cse.wustl.edu/~ckelleher/research.htm.
 Cooper, Steven, Kenneth J. Goldman, Martin Carlisle, Myles McNally, and Viera Proulx, Tools for Teaching Introductory Programming: What Works?, presented at SIGCSE 2006.
 Cooper, Steven, Wanda Dann, and Randy Pausch, Teaching objects-first in introductory computer science, presented at SIGCSE 2003, Reno, Nevada. February 2003.
 Rodger, Susan H. An Innovative Approach with Alice for Attracting K-12 Students to Computing. International Conference on the Virtual Computing Initiative (IBM University Days), Research Triangle Park, NC, May 7, 2007, (p. 17).
 Rodger, S.H., Introducing Computer Science Through Animation and Virtual Worlds, Thirty-third SIGCSE Technical Symposium on Computer Science Education, p. 186-190, 2002.
 Cooper, Steven, Wanda Dann, and Randy Pausch, Alice: A 3-D Tool for Introductory Programming Concepts, presented at CCSNE, Ramapo, New Jersey. April 2000.
 Program in Education (PiE), Duke University. http://fds.duke.edu/db/aas/Education/faculty/jrigg.
 Osborne, Mary Pope. The Magic Tree House. http://www.randomhouse.com/kids/magictreehouse/series.html.
 Osborne, Mary Pope. Dinosaurs Before Dark. Random House. http://www.randomhouse.com/kids/magictreehouse/dinosaurs.html.
 Lopez, Mercedes internship website. Page offers a link to DinoQuiz (scroll down to the bottom of the web page) http://www.cs.duke.edu/~mrl19/the_project.html.