Using Computational Thinking to solve problems is one of technology’s great super powers. These mental skills are great for tackling thorny problems both big or small. However, sometimes my students have difficulty grasping how to apply these skills to the outside world. So, recently when I introduced Computational Thinking to my 6th grade students, I explained that we can use these tools to solve problems that exist not only in our classroom, but also in our own backyards. Using a computer as a part of the solution is certainly an aspect of Computational Thinking, although as they would find out, most of the “heavy lifting” happens between their ears (and on scrap paper).
Originally born out of the need to break down problems before feeding them into the limited computers of the 1950s and 60s, Computational Thinking is certainly not a new concept. It first got mentioned as an educational tool in the groundbreaking book, Mindstorms, by Seymour Papert in 1980; however, there has been a recent resurgence in teaching problem solving methods in schools. While these cognitive skills are helpful for robotics challenges, I felt like my students’ understanding was siloed within the walls of my classroom. So this year, I asked them to begin solving problems using these methods in the world outside of our computer lab.
Decomposition is a form of Computational Thinking where a large problem gets broken down into smaller and smaller problems. The point of decomposition is to take something that as a whole that seems daunting and reduce it to a series of easy-to-solve problems. So, one offline activity I assigned was decomposing the gargantuan task of making a peanut butter and jelly sandwich. This classic exercise in process-oriented thinking asks students to organize tasks, identify sub-problems, and make calls on what problems are fully decomposed. Most of my students didn’t see making a sandwich as a problem to begin with, so this was a perfect task to decompose.
This year, I gave them the added challenge of decomposing this problem to the point that a three or four-year-old could execute their decomposed problems. I even encouraged a few to test out their processes on younger siblings and report back their findings. Most of the students were able to figure out that collecting materials was the first sub-problem, although some missed this point and focused more on bread, peanut butter, and jelly. In the end, no students were able to report back that a younger sibling effectively built a sandwich from their instructions alone; however, all was not lost. I found that students’ thinking around decomposing problems was sharper after encountering a few peanut butter disasters at home.
After another lesson on Algorithms, I assigned homework to play a few games of Tic-Tac-Toe with friends or family. Simple games such as this can be a great foray into thinking computationally. Algorithmic design is a complicated topic for an 11 or 12-year old to master. That said, many kids as young as five or six begin learning how algorithms work through playing Tic-Tac-Toe. Young people realize from an early age that it is a game governed by a simple set of rules which in turn drives their decision making. So, I gave my students the task of playing Tic-Tac-Toe while recording their decisions on a flowchart. To make things simpler, I gave them the task of flowcharting only the games where they went first. Mapping out these decisions into a flowchart takes some effort, but I assured them that doing so would guarantee they would never lose a game of Tic-Tac-Toe again.
From the amount of erasing and rewriting that happened, it looked like it took a few tries to figure out what would work best in each situation. However, I had a few students report back that they were making the same three decisions over and over again. This was exactly the type of revelation I was looking for, and it was a perfect segue into talking about iterations and looping. In the end, I had a few students figure out an effective algorithm for Tic-Tac-Toe, and we were able to crowd-source a no-fail algorithm for future games.
There are many more ways that Computational Thinking can be applied in the real-world, and these examples are just the start. From walking routes to sorting socks there are problems everywhere that can be turned into teachable moments. Furthermore, these unplugged and offline activities help reinforce the concept that problem-solving methods are not just for the Computer Science classroom, but a systematic way to begin tackling the problems that arise each and every day.