Editor’s Note: This article originally appeared on UW Bothell’s student-run media blog, The Next. CodeSpells is a fantastic resource for kids learning to make programs, and we encourage all parents to take advantage of it.
Today I spent my afternoon giggling and clapping my hands together while coding in Java. Now, I’m not a complete novice when it comes to code; I’ve always enjoyed the coding I’ve done for my classes, but I’ve never been delighted by it. The reason that my coding today was so exceptional is that I was not nesting loops to make a box or plucking data out of an array—I spent my afternoon coding things to teleport or catch fire in the charming Java learning tool CodeSpells.
A team of computer scientists at UCSD developed CodeSpells as an interactive way to encourage children to explore computer programming. The core gameplay mechanic is a spellcasting system where each of your spells is a short program coded in Java. You can copy complete spells from your spellbook and edit them for a variety of effects. Your spellbook helpfully highlights which areas of the code produce which effects, making it easy to analyze and alter the code as you see fit. It even gives you short, easy to understand tutorials about basic coding concepts, and tentatively suggests new spells you might try to make. Drawing a connection between coding and sorcery doesn’t completely demystify it, but it does make it a mystery that’s exciting and fun to unravel.
The ideas behind CodeSpells evolved from a study on how software engineers became passionate about their field. The researchers found several common themes, including coding as a self-directed activity, coding as a form of empowerment, and coding as something fun and exploratory. The game was developed as a way to try to incorporate these ideas into an interactive experience. As part of their research they presented CodeSpells to a classroom of 10- to 12-year-old girls with great success—students were interested, engaged, and reluctant to stop when the study ended. Learning to read and write code can be really intimidating and alienating, and CodeSpells takes great pains to present it as something fun to explore.
CodeSpells was designed to be accessible to a very young audience, and the narrative is appropriately simple. You take the role of an anonymous wizard in a valley full of polite but horrifying little gnome people. They lead you through a series of simple quests that teach you basic interactions like picking up items and casting spells. You fly around, pick up bread, set things on fire, and are otherwise gently guided through understanding your spells one at a time.
The game is still in an early beta, and the quest structure is one of its less-polished elements. Some of the instructions are confusing or absent, and they don’t have an in game explanation yet for some of the more complicated spells. By the time the quests peter out, however, the lack of structure is almost irrelevant. The game isn’t about about following instructions, it’s about giving them back to the game. The tiny world is set up for you to explore, levitate, teleport, set fire to and whatever else your heart desires.
After playing around in CodeSpells, I haven’t become an amazing computer programmer, and I don’t think that was the point. CodeSpells does not provide a comprehensive interactive course in Java programming. What it does do is make the experience of coding easy to jump into. CodeSpells focuses more on teaching how coding works than how to code. It encourages you to break the rules of your spells, and even suggests fun ways you might go about it. It’s infinitely satisfying to watch giant rocks fly across the map from your modified summoning spells. Even when your botched levitation catapults you skyward it feels more like a modification than a mistake. CodeSpells was designed to introduce coding to elementary school students—by making coding exciting and accessible, it hits the mark.