Put the Pieces Together: Completing the Puzzle With Computational Thinking

Begin to develop an understanding of computational thinking and why we should be teaching it to every student.

Grades K-12 10 min Resource by:
Listen to this article

Computational thinking helps prepare students for their future. It’s not just a necessary skill for future computer scientists and programmers; it can be a valuable skill for all students to have in their tool kits. For our first look into computational thinking, one of our Digital Learning Specialists shares their firsthand experience with computational thinking, and interestingly enough, it’s in a setting outside of the classroom—truly highlighting the everyday utility it can empower your students with in their real-world applications.

For my last birthday, my spouse gave me a thousand-piece jigsaw puzzle of my favorite television show. To be honest, I have never put together a jigsaw puzzle bigger than 100 pieces. The whole thing just seemed overwhelming to me. However, staying in and being home a lot this year—and having an older brother who swears that they are relaxing—I thought I would give it a try. I began by rolling out a large puzzle mat, and then I opened the box. There were so many pieces! That overwhelming feeling was starting to creep back in. However, my computational thinking instincts began to kick in, and for the first time ever with a puzzle, I thought: I can do this!


I started to reflect and think about the four foundational skills of computational thinking.

  • Abstraction: Look at relevant and important details only.
  • Algorithms: Use steps and sequencing to solve problems.
  • Decomposition: Break things down into smaller manageable parts.
  • Patterns: Find similarities and trends.

I thought to myself, This puzzle is essentially a large problem that I need to solve, and with any large problem, I need to break it down into smaller parts that are more manageable and easier for me to solve (Decomposition). If I solve all the parts, I can solve the whole problem. But how do I break the puzzle down into smaller parts? I started by opening up the puzzle box and coming up with a plan to sort the pieces. Immediately, my brain started recognizing patterns (Patterns). I found all of the edge pieces and put them in one pile. I noticed on the picture that there was a yellow line that formed a border, so I found all the pieces that had any yellow on them and put them in another pile. The picture included some landscape of grass, green, and a gray sky, so I sorted grass-looking pieces into one pile, greenish pieces into another pile, and all the gray pieces into yet another pile. The puzzle also had a picture of two people, a crest, and one word on it, so I created a pile for the people, one for the crest, and one for the title. There were a few pieces that I didn’t quite know how to sort, so I put them into their own pile.

After I was able to sort the pieces into piles, I picked one pile—one smaller problem—to tackle first. I decided to use all the pieces with yellow in them to build the yellow border. I set aside, and even removed, all the other pieces that would not help me put together the yellow border (Abstraction). I then further sorted my pieces containing yellow. I sorted them by the other colors and then organized them by piece shape: regular, double ears, double wings, and irregular. Then, I came up with a set of steps to go through to put together the pieces (Algorithms). I started with an edge, then looked for a similarly colored piece, and then based on the type of piece that was needed, I grabbed an appropriate piece and tested it. I did this until a match was found. I continued this process loop until the entire yellow border was complete. Then, I moved on and did something similar to put together the crest, the title, and the people. Before I had even realized it, about 3 hours had passed, and I had solved four of my smaller, more manageable problems. I went from being completely overwhelmed and thinking I would never be able to solve a puzzle to a feeling of, I got this! It was all thanks to computational thinking!

I want to empower every student to feel something similar, to be able to grab onto that “I got this!” feeling and persevere in solving a problem because they know and are able to utilize computational thinking. Computational thinking is a skill to be taught, and I would argue that it can be successfully integrated into any topic, into any content area, and with any school-age group. Not every student or teacher needs to put together a thousand-piece puzzle to start understanding computational thinking (although a smaller one could be great). Many times, it is just pointing out the connections to computational thinking and then bridging ideas and understanding to computing.

For example, in a first grade classroom, a major standard is for students to understand the organization and basic features of print. If we drill down further, the exact language of that standard, CCSS.ELA-Literacy.RF.1.1.A, is: “Recognize the distinguishing features of a sentence (e.g., first word, a capitalization, ending punctuation).” That sounds a whole lot like pattern recognition to me. And then to write their own sentence, students would need to follow an algorithm. Another huge standard in first grade is decoding words. Students are decoding word patterns, abstracting out the parts they know, and creating an algorithm they can follow so that they can read. Like I said, computational thinking is all around us in every subject. Even physical education (PE) is jam-packed with opportunities to integrate and identify computational thinking. I was just glancing at my state’s PE standards, and the word “pattern” is everywhere. Sticking to first grade, let’s look at PE1.6.2.a: “Demonstrate mature pattern in an underhand throw.” Okay, what does a student need to do in order to be able to throw a ball? I have observed PE teachers decomposing the throwing process. They break it down into more manageable parts and teach students the steps. They provide the students with an algorithm to follow so that they can repeat the throw. And on and on we could go.

Computational thinking is all around us, and it is not big and scary; it is awesome! We need to make connections to it for and with students, and then we need to make clear connections between what they are doing and how computational thinking is used in computing. This becomes easier when we integrate some technology tools. I recently worked with a group of first graders to create a classroom welcome algorithm. We are engaging in distance learning, and social distancing is a priority, but we still need to welcome each other. Students had just learned about algorithms, so we engaged in an empathy activity and created a welcome algorithm based on the students’ likes. We even used emojis to create a program that could be posted every morning that could be run by the students. We have talked about how programmers write code with algorithms and computers run programs made of algorithms (a list of steps to complete a task), but it was really abstract for them. In order to really make clear connections, students used ScratchJr to program two sprites (characters) greeting one another. The large problem was creating a greeting between two characters. However, we broke down the steps for students (Decomposition). Students focused on writing code algorithms for the different sprites (Abstraction), and then putting it all together to create an awesome welcome. Along the way, they debugged, they shared and received feedback, they recognized patterns and integrated new learning into their own program, and they created awesome greetings that not only had them using computational thinking but also had them writing sentences and creating a story between the characters (literacy integration!). Most important, there was reflection and conversation that connected both the unplugged (without a device) and plugged activities. Students were developing their understanding and making connections. If first graders are able to do this amazing work at six and seven years old, imagine the possibilities for them in their future if they continue to be provided with exposure and opportunities to engage in computational thinking.