Scratch in Practice: There’s More Than One Way to Code a Cat
By Natalie Rusk
“How do I make my character jump?” a student asks while coding a project in Scratch.
Before responding, I find it’s helpful to ask what they have in mind, so they can think aloud about the process. Talking out their idea is often enough to help them to figure out what to do next. It’s interesting how often students will come up with a way to code that is different than one I might have suggested, but ends up working the way they want.
If I do suggest example code to look at (such as from another student’s project or from a Scratch coding card), I feel it’s important to acknowledge that there are multiple possible approaches, saying something like, “Here’s one way to do it, see if it does what you want…”
As coding is brought into more and more classrooms around the world, it’s sometimes introduced by asking students to solve a coding problem with a single right answer or with one predetermined path to a goal. Although I understand the reason for providing one clear starting and ending point, I worry that it presents a narrow view of what coding can do. Focusing on a single pathway not only limits the creative potential of coding, it also limits who becomes interested in coding and decides to learn more.
Yes, coding can be used to solve a specific problem, but coding also can be used to design games, create interactive art, animate stories, generate visualizations, program simulations, make music, build tools for others, and so much more. Even when solving the same problem, there are often different possible ways to approach it.
I was fortunate to be introduced to a broad and inviting view of computer programming by Sherry Turkle and Seymour Papert. As they wrote in the early 1990s:
“The computer is an expressive medium that different people can make their own in their own way.”
(I feel like placing a repeat loop around that sentence as I keep re-reading it, recognizing how much those ideas continue to inspire our ongoing work on Scratch.) Sherry and Seymour emphasized that encouraging diverse styles of thinking and relationships to computer programming are essential for promoting equity and developing a more inclusive computer culture. In their words:
“Our data points to discrimination in the computer culture that is determined not by rules that keep people out but by ways of thinking that make them reluctant to join in.”
“The diversity of approaches to programming suggests that equal access to even the most basic elements of computation requires accepting the validity of multiple ways of knowing and thinking, an epistemological pluralism.”
In our group, we often refer to these ideas with the easy-to-recall phrase: “Many paths, many styles.”
As Scratch Team members, we are continually amazed by the infinite variety of ideas and styles reflected in the projects shared by young people in the Scratch online community. We are also inspired by the diverse ways that educators are engaging their students in learning through creating projects, which we get a glimpse of each day on the Scratch Twitter feed and the Teaching with Scratch Facebook Group from the ScratchEd Team at Harvard.
We are striving to do even more to help more educators support this approach. It’s one reason we launched Scratch in Practice, to highlight ways that educators from around the world are encouraging students’ creative expression as they learn across subject areas — and to provide more support to other educators in this work.
We recognize that creating a learning environment that supports many paths and many styles can be challenging, particularly at the beginning and especially with the numerous constraints and demands often faced in schools. Yet each day we see how opening up possibilities provides motivation and meaning for more students to continue learning, creating, and sharing their ideas and interests with others.
This is why I like to suggest that there’s more than one way to code a cat — or whichever new sprite a student chooses or draws or imports into Scratch. Which direction do they want to go in? How do they want to get there? I am always eager to find out.
Visit the Scratch in Practice site to learn more about supporting many paths and many styles into coding!
Natalie Rusk is Director of Learning Research for the Scratch Team. She is one of the creators of the Scratch programming language and is lead author of the Scratch Coding Cards.