Alice Offers Gentler Intro to Programming
- By Linda L. Briggs
Ask just about any computer science teacher, and he or she will recite the same facts: We aren't pulling enough students into computer science; girls and minorities are woefully underrepresented; and drop-out rates in college from computer science are atrocious.
For example, a 2007 study by the National Center for Women and Information Technology (NCWIT) found that girls participate in alarmingly small numbers in science- and technology-related studies--and that number grows ever smaller as girls advance through K12 and into post-secondary education. Of female students who took the SAT in 2006, only 1 percent were interested in pursuing a major in computer and information sciences.
Alice Teaching Resources
Alice is a free, open-source programming language developed by researchers at Carnegie-Mellon University.
Course materials for teaching Alice, made available at no charge by Carnegie-Mellon, are available at aliceprogramming.net. Teachers who register at the site can access materials with exercise solutions and lesson plans.
At Princess Anne High School, a public high school in Virginia Beach, VA, a graphical programming language called Alice seems to be offering a solution.
For the second year, Virginia Beach is using Alice to help teach its introductory programming course. The course includes students from ninth graders to seniors, with a prerequisite of geometry, which generally means eligible students have two years of high school math behind them, explained John Harrison, who teaches advanced placement computer science and statistics at Princess Anne.
Before introducing Alice, the district was using C++ in its introductory course. Like most programming languages, C++ is syntax-intensive, meaning that tiny errors in punctuation or spelling can bring even the simplest program to a screeching halt. "Not only do you have to spell the words correctly, but you need to put the punctuation in the right spot," Harrison said. "You need to put semicolons at the end of every line. You need to match up your parentheses...." All of that can easily frustrate a beginning programmer.
As a three-dimensional graphical programming language, Alice eliminates all that and moves students past syntax to thinking through the steps necessary to make an event occur. In Alice, students create animations using established characters who already have characteristics programmed in.
For example, a student working in Alice's "ice skater world" can use a three-dimensional image of an ice skater with basic commands already build in. The skater is treated as an object in Alice; the programming student chooses an operation, drags it from the programming pane, and drops it, then hits the play button to see what happens. The focus moves from syntax to the importance of thinking through a problem or sequence of events and other programming challenges.
Alice presents students with challenges of its own, Harrison said. For example, the meaning of some of the terms in Alice may not be what a student expects. Choosing "Turn" for the ice skater without a proper axis for the turn can cause the skater to rotate in place, basically spinning right through the ice.
Unlike a traditional programming language, however, correcting the error in Alice is relatively straightforward. "It's obvious right away that there's a problem, so it's easy to fix," Harrison said, "unlike in a traditional programming language, [in which] we may have given students a simple program like, 'Calculate the area of a rectangle, square, or circle.' In that case, you may get an answer, but how do you know it's right without working it out yourself and checking it?"
Alice is a free, open-source programming language developed over the last 10 years or so by researchers at Carnegie-Mellon University, including the well known professor Randy Pausch. Electronic Arts Inc., a large video-game publisher, is currently collaborating with CMU in the development of a new release of Alice, version 3.0. The software is intended as a teaching tool to introduce students to object-oriented programming by allowing them to learn fundamental programming concepts while creating animated movies and simple video games.
It's too soon yet to be able to measure how well knowledge of Alice translates to real-world programming skills at Princess Anne. In his second year of using Alice, Harrison now has a handful of students in his Advanced Placement computer science course, which teaches Java, who studied Alice with him last year. In general, he said, those students seem to be ahead of his other programming students. This may be partly owing to the fact tat the Alice course touches on Java at the end. But more important, Harrison said, is that his Alice-trained students are "used to thinking like programmers. They're used to thinking about a very linear sequence of events."
Alice uses the same terminology that Java uses, he explained, such as methods, if statements, loops, functions, and data types. That gives new Java students a heads-up as well. "My Alice programmers ... already know the lingo," Harrison said. "They already know what a loop is. They already know what an if statement is. Now, it's just, 'I remember doing that in Alice. How do I do it in Java to get the same effect?' "
"There's definitely some crossover," Harrison said. "It's just a question of how much."
He said he hopes that Alice will help address some of the disparities he sees in his computer programming classes--disparities that are echoed in study after study on computer science students in the United States. One, not enough students are interested in programming, Harrison said, and, two, those that are tend to be white males. And even those students, studies show, often lose interest in college.
But Alice, Harrison said, "appeals to everyone.... There are the typical 'guy' kinds of things in there, so you can have explosions, fires, buildings blowing up, and all that kind of ... action stuff. But there's also an awful lot of things that appeal to girls." He cited tortoise-and-hare races and a "dragon taxi service" in which the programming goal is to rescue a princess.
Alice may also help pull a wider variety of students into programming classes. While his C++ classes used to be almost entirely white males, Harrison said, his Alice class is perhaps a third girls and includes a handful of African-American students. "I'm hoping that, as the word gets out, I get some of these students when they're younger," Harrison said. Some of this year's tenth and eleventh graders have already told him, he said, "Hey, you'll see me again next year. I've signed up for AP Computer Science." In fact, he's seen a 50 percent increase this year in his introductory programming class, to 45 students, up from 30 or so the last year that C++ was taught.
The move to Alice was triggered when the district reevaluated its math program several years ago. Virginia requires three math credits for high school graduation; that often meant Algebra II for a student's third year--a steep challenge for many. "We were looking for something that would satisfy the third math credit for those students," Harrison explained, "as well as provide us a kind of a springboard for our more capable students to get them interested in programming. I think Alice provides that."
Alice has turned up some surprises, as some students who have struggled with traditional math prove to be highly talented in Alice. Harrison cited a music student last year who turned out to be one of his best programming students, partly because Alice includes the ability to incorporate music.
To develop course materials for teaching Alice, Harrison's district worked with Wanda Dann and Stephen Cooper, authors with Pausch of a textbook on Alice, Learning to Program with Alice. At the time, Dann and Cooper were applying for a National Science Foundation grant to move Alice into high schools, and worked closely with the district the summer before the language was introduced into the district, Harrison said. Cooper presented a week of teacher training on how to teach with Alice, then teachers spent a second week, with assistance from Cooper, writing curriculum.
Course materials for teaching Alice, made available at no charge by Carnegie-Mellon, are available at aliceprogramming.net. Teachers who register at the site can access materials with exercise solutions and lesson plans, but Harrison said that as yet, he has seen nothing specific for high schools.
Further information about Alice can be found here.
Get daily news from THE Journal's RSS News Feed
About the author: Linda L. Briggs is a freelance writer based in San Diego, CA.
Proposals for articles and tips for news stories, as well as questions and comments about this publication, should be submitted to David Nagel, executive editor, at firstname.lastname@example.org.