Computer scientists at the University of California, San Diego, have developed an immersive, first-person player video game designed to teach students in elementary to high school how to program in Java.
Code Spells is the creation of PhD students Sarah Esper and Stephen Foster who have built their game on the metaphor that Code is magical. The player is a magician who has lost their memory, their goal is to remember their spells (programs) and learn to make and execute new ones. The beta is currently downloadable for the Mac, with a Windows version due shortly.
This video introduces the games and you'll see how it uses Java:
CodeSpells’ story line is simple: the player is a wizard who wakes up in a strange place populated by gnome-like creatures. She (or he) has been sent here to learn the ways of magic. The gnomes used to have magic, but lost it at some point. The wizard must help them. She writes spells in Java. Players have seven spells available to them, including levitating objects within the game, flying and making fire.
Players can also earn badges by undertaking simple quests, which help them master the game’s spells. By the time players complete the game’s first level, they have learned the main components of the Java programming language, such as parameters, for if statements, for loops and while loops, among other skills.
The researchers tested the game on a group of 40 girls, ages 10 to 12, who had never been exposed to programming before. As reported in a paper presented at the SIGCSE conference in March in Denver, within just one hour of play, the girls had mastered some of Java’s basic components and were able to use the language to create new ways of playing with the game.
The research is being supervised by William Griswold of the the Jacobs School of Engineering at UC San Diego. Prompted by the fact teaching computer science below the college level is difficult, mainly because it is hard to find qualified instructors for students in elementary to high school, he and his graduate students set out to find a way to reach these students outside the classroom. They designed the game to keep children engaged while they are coping with the difficulties of programming, which could otherwise be frustrating and discouraging. They plan to release the game for free and make it available to any educational institution that requests it.
"Teaching children how to program must be a priority in a society where technology is becoming more and more important",
said Sarah Esper, who has been developing as part of her graduate studies. Co-developer Stephen Foster added:
“We’re hoping that they will get as addicted to learning programming as they get addicted to video games."
CodeSpells was influenced by research in which Esper and Foster surveyed 30 computer scientists and identified five characteristics that are key to learn programming outside a classroom setting: activities must be structured by the person who is trying to learn; learning must be creative and exploratory; programming is empowering; learners have difficulty stopping once they start; and learners spend countless hours on the activity.
Teaching programming through play is not a new idea but it has tended to be overlooked by teachers who tend to be reluctant to bring video games into the classroom. It seems a shame that these researchers are looking to use this resource outside the classroom when it clearly could have a role inside elementary and middle schools.