“Ugh! I hate coding!” cried out one of my seventh-grade students. “I don’t see why I have to move Elsa three spaces to meet Anna. It’s soooo boring!”
“But with Twine you are coding,” I explained.
“I guess,” she responded, unenthusiastically.
The above conversation was an actual exchange I had with a student in my social studies class this past school year. She was referencing an Hour of Code activity she was assigned to complete for another class. In it, students had to drag lines of code to instruct characters from Disney’s Frozen to move across the screen. To her, it was boring; coding meant solving rote puzzles. In my class, however, she was using Twine, an authoring tool, to code choose-your-own-adventure stories. It took some time for me to convince her that there are, in fact, multiple approaches to coding—beyond puzzles.
Beware of Loaded Words!
“Coding” is a loaded word. There are actually many words that are loaded for children, which can create a barrier to computer science education. “Computers,” “science,” and “games” are others. “Writing” is loaded, too—students who stated to me that they disliked writing actually wrote lengthy Twine stories.
As it turned out, the student that professed to “hate coding” turned in exemplar work. She and her partner authored a branched story about Paul Revere. Written in the second person point-of-view (“you”), the reader takes agency of the story’s narrative. It is not revealed to the reader who he or she actually is until the conclusion. To “win”—that is, to get the happy ending—the reader needs to make the same choices as those taken by Paul Revere during his famous midnight ride.
While the puzzle approach to teach coding engages some children, it does not interest all. Teachers should not look at the Hour of Code website as the Uber for 21st-century learning. It is a launch pad, not the destination. After the Hour of Code, students need freedom to bring their own interests to their STEM learning. Often times this involves self-expression driven by student choice.
Coding as Self-Expression
Writing interactive stories in Twine turned out to be an effective approach to show students that coding means more than directing characters to move across a screen. Easy to learn, I teach Twine by scaffolding instructions. I introduce it as a story-making machine. Then I show the class how to write a simple branch. Any text enclosed in a double square bracket automatically produces a hypertext on Twine, which, when clicked, brings the reader to another branch of the story. For example, “You see [[stairs]] and [[a door]]” creates two branches: one for “stairs” and one for “a door.” To the writer, it looks like a concept map, with arrows connecting to parts of the story:
Once students have their stories started, I add in more complex instructions. Actually, I show students the Twine Guide Wiki, which lets students self-direct their learning. If students want to add pictures, the guide has instructions to follow. Students can simply copy-and-paste one line of code, replacing placeholder text with a link to an image they find online. It was at this point when I proclaimed to the class that they were coding. That announcement was what led to the icy “I hate coding” response from my student. To her there had been a clear distinction between writing a story and coding one.
Similarly, I introduced Scratch, the free coding application, as a tool for self-expression. Last year, students were assigned to create viral videos about one of the original 13 American Colonies. They could use any application they wanted—on computer, iPad, or smartphone—as long as it was free. One team asked me if they could to remix Nyan Cat, a popular YouTube video animation viewed over 137 million times! I directed them to a Nyan Cat Simulator on Scratch, and then showed how they could remix the code. This turned out to be the first time they ever used a coding website. Using the See Inside feature, they added in facts about the Maryland colony. To them, Scratch became about self-expression using coding.
MIT Media Lab’s Mitchel Resnick, along with David Siegel wrote a blog post in 2015 about coding and self-expression. Resnick’s studio develops Scratch. They wrote, “For us, coding is not a set of technical skills but a new type of literacy and personal expression, valuable for everyone, much like learning to write. We see coding as a new way for people to organize, express, and share their ideas” (2015, para. 2).
Resnick and Siegel echo the sentiment from Seymour Papert, the father of constructionist learning. To Papert, coding was not about writing lines of code for a computer to interpret; rather, it was a tool set with which children could use to create a working system. He wrote, “a modern-day Montessori might propose, if convinced by my story, to create a gear set for children.” In this sense, coding applications should be used as digital toys to be played with by children.
For students to embrace coding, parents and teachers need to incorporate the multiple interests that children have. For some, coding can mean storytelling, pixel art, or actual lines of code. Children need to be free to bring their own passions and interests to coding projects. The result empowers students to take agency over their learning, driven by creativity.
Matthew Farber, Ed.D. teaches social studies at Valleyview Middle School, in Denville, New Jersey. He is an Edutopia blogger, and a Certified BrainPOP Educator. He is a Geraldine R. Dodge Teacher Fellow and a Woodrow Wilson HistoryQuest Fellow. He is the author of Gamify Your Classroom: A Field Guide to Game-Based Learning.