Four computational thinking strategies for building problem-solving skills across the curriculum
Algorithmic design – making steps and rules to solve problems
Most problems will require students to employ multiple strategies. Julie Evans, CEO of the education nonprofit Project Tomorrow, illustrated that point by asking attendees at one session to draw a cat in less than 30 seconds. No drawing looked exactly the same, but the participating educators had to quickly break their mental image of a cat into important parts, such as a tail and whiskers (decomposition). They discarded unnecessary data; for instance, a cat can be conveyed by drawing its head and body or just its face (abstraction). And they envisioned and executed steps to get from a blank page to a completed drawing (algorithmic design).
Bryan Cox, who works in the Georgia Department of Education to broaden computer science education, offered practical and pedagogical reasons for integration. Not all schools offer computer science and even at schools that do, not all students take those classes. For elementary school teachers, stand-alone computer science lessons can feel like one more thing to add to an already packed curriculum. “Integration is less disruptive,” Cox said. He also said integration mirrors how computational thinking occurs in the real world in fields like medicine, automotives, law and sports.
Over the past two years, Project Tomorrow trained 120 teachers in New York City elementary schools to integrate computational thinking into their classrooms. In one example from a second and third grade writing unit, students wrote a realistic fiction story and created a movie to bring the story to life. That may sound like a pretty typical language arts project, but the difference was in the approach, according to Project Tomorrow instructional coach David Gomez. Rather than being told how to write a realistic fiction story, students developed an algorithm for the process, with steps such as making up a pretend character, giving the character a name, imagining the setting and so on. In this example and others, Gomez said that algorithms help students acknowledge the steps they are following during a task and increase their awareness of their work processes.
Gomez works with teachers to help students recognize when they’re using other computational thinking strategies, too. One second grade teacher, for example, used a poster with sticky notes for students to reflect on which strategies they’d used in different subjects throughout the day.
Evans said she loves hearing kids identify the strategies in discussions with each other. She’s heard questions like “Did you try abstraction?” and “Why didn’t you do pattern recognition?” from students chatting with classmates. “Those little tykes in second grade are already developing their problem-solving muscles, and they’ve got the vocabulary to have that be a sustainable skill for the future,” she said.
Crafting computational problems
Not every question or problem is a computational one. Carolyn Sykora, senior director of the ISTE Standards programs, shared three characteristics that teachers can use to identify a computational problem:
- It’s open-ended with multiple potential solutions. “How can we design a car to get from point A to point B?” is an example that meets this criteria, whereas “How does a self-driving car work?” is a knowledge-based question.
- It requires using or collecting data. Data doesn’t just mean numbers. It could, for example, be the lines in a poem or the notes in a musical composition.
- It includes an opportunity to create a procedure or algorithm. In some cases, such as an engineering challenge, it’s easy to identify where this opportunity will arise. But often that’s not so clear. “Sometimes you don’t understand where the algorithm design comes into play until you do your problem decomposition,” Sykora said.
Using these characteristics can help teachers rethink curriculum, rather than trying to add something new. “We have our tried and true lessons and the things that we want our kids to learn,” Sykora said. The next step is to look at those lessons and ask, “How can we take something that’s knowledge-based and turn it into a computational problem?”