Computational Thinking in the Wild

Image by raYmon on Flickr
Illustrating computational concepts like decomposition and algorithms with simple, hands-on, and occasionally messy activities.
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.
Learn More
What is computational thinking
https://teachyourkidscode.com/what-is-computational-thinking/
planting seeds of computational thinking
Computational thinking for kindergarteners
https://www.edutopia.org/article/computational-thinking-kindergartners
K to 12 computational resources
https://www.gettingsmart.com/2018/05/10-classroom-ready-computational-thinking-resources-for-k-12/
Computational thinking activities
https://www.stem.family/activities/computational-thinking-activities/
Unbeatable tic tac toe
Seymour Papert
https://en.wikipedia.org/wiki/Seymour_Papert
Mindstorms – the book
https://en.wikipedia.org/wiki/Mindstorms_(book)
Programming Peanut Butter and Jelly
http://static.zerorobotics.mit.edu/docs/team-activities/ProgrammingPeanutButterAndJelly.pdf
Also In The February 2020 Issue

Can you figure out how to divide up coconuts between a group of sailors and a monkey? This puzzle mixes math and coding. Plus you can go online to try the code yourself!

Recreate the classic game in this simple Python tutorial. What whimsical stories can you write?

If you like ships, then you’ll love this easy-to-use website that keeps track of seafaring vessels around the world. Bonus: it helps prevent maritime collisions!

Ready for some good old-fashioned winter fun? In this article, build a digital snowman with Sketchup.

A fun, silly way to share your coding trials and triumphs with friends — because everything is better with kittens!

Should you learn Python, Scratch, Java, Assembly? If you’re feeling overwhelmed by too many options, this article is here to help.

Illustrating computational concepts like decomposition and algorithms with simple, hands-on, and occasionally messy activities.

How do street lights know when to turn on? And what’s in store for the street lights of the future?

In the old days, before video game systems had cameras and sensors, programmers had to get creative.

Six women were hired to use their math skills to program the ENIAC computer. They called themselves The First Programmers Club.

Learn about the key software that keeps your computer safe from viruses.

Programs are constantly being patched and improved. How do we keep track of all this new code?

Dive into the nitty-gritty details of binary numbers: how they work, why they’re used, and where they come from.

Binary might be the language of the computer, but we humans can use it to decode secret messages.

An easy way to code your own 3D graphics online. Dive into the world of pixels, triangles, textures, and colours!

Learn about the smallest, simplest computers and where they’re still used today.

Why Smalltalk is such a unique language, and how it evolved into modern variants like Scratch, Squeak, and Pharo.

Interesting stories about science and technology for February 2020.

Links from the bottom of all the February 2020 articles, collected in one place for you to print, share, or bookmark.