Toggle open
Homepage
Learning Library Blog Understanding Problems With Computational Thinking: Decomposition
Expand breadcrumbs

Understanding Problems With Computational Thinking: Decomposition

By Nick Pinder
February 14, 2022
Computational Thinking Decomposition blog Version Id77z 4km0 Ax FD8aza N Cl X Xv0 Oi P Ys Onvg

Even though computational thinking is a skill that can be incorporated into all school subject areas, it can be a head-scratcher for teachers of language arts, social studies or other content areas outside math and science.

To illustrate how to integrate CT into a nontraditional subject, I set out to create a hypothetical Spanish lesson that would incorporate computational thinking to get a better idea of what teachers face. 

In my lesson, students need to solve the following problem: How can we identify and classify poems? On the surface, this seems simple, but when you think about it, there are layers to it. Computational problems often involve many components similar to this one. To better understand all the layers, we use a CT component called decomposition.

In the context of CT, decomposition is unpacking problems to better understand how to solve them. In other words, you’re decomposing a problem into smaller portions so that you can better understand the problem.

Unpacking this poetry question doesn’t result in a solution, but rather leads to other questions that will help solve it: What kinds of poems? What is to be identified? How can we find those identifiable things? Can these be used to classify poems? 

All these types of questions help us peel back those layers. Asking and answering these questions is decomposition.

In this article, I’m going to share my experience creating this Spanish-CT lesson with decomposition in mind. I’ll also provide some suggestions for thinking about decomposition in your own CT problems.

Step 1: Ask questions about your CT problem.

I wanted my students to identify the characteristics of a poem and use those elements to create an algorithm. The first question I considered was what data would be analyzed. More specifically, what aspect of the poems would students need to identify. 

I, the teacher, knew what to look for: rhymes, syllables, lines, etc, but would the students know? How could I ensure they felt prepared to look for these elements in the poems? How could I guide them without spoiling the answers? 

My answer to this was brainstorming. I assumed that my hypothetical high school students would have encountered poetry in a previous course, so I decided to tap into that prior knowledge. 

To get the ball rolling, I would ask students what makes a poem a poem. After encouraging them to come up with as many ideas as they could on their own, they’d share with a partner, and eventually, we’d discuss as a class. Their collective answers would become an anchor chart.

My path to creating this system of brainstorming and partner discussion was the result of asking myself questions about the computational problem.

Step 2: Zoom out 

Sometimes we think we’re decomposing a problem when we’re actually jumping ahead to solving it instead. This isn’t what decomposition is for.

Knowing the steps to a process is not the same as decomposition. Think about it in terms of brushing your teeth. Decomposing the question — How do I brush my teeth? — looks something like this: Get a toothbrush, apply toothpaste, brush the front and back sides of teeth, spit the excess toothpaste out, rinse, done. These are the parts of brushing your teeth.

While the steps to teeth-brushing have indeed been explained, do I better understand the problem or did I simply solve it? What are the next steps I need to take? None? Well, then the problem hasn’t been decomposed, but solved. 

Decomposing a computational problem leads to a better understanding of where to go next. Arriving at a solution right away usually is a sign that your computational problem needs to be re-examined. You need to zoom out a bit.

In this example, how to brush your teeth is too narrow. But focusing on the question, How should I clean my teeth? leads to more interesting questions. What counts as cleaning teeth? Is it something only I can do? Can I get help from others? What are some tools I can use? These are the types of questions that lead to a better understanding. Notice that none of them answer the initial question but expand our inquiry options.

If decomposing your computational problem results in a solution, it’s time to zoom out! Don’t beat yourself up if this happens. That’s natural in the CT process. Sometimes we get a good idea, but just need to adjust it a bit! Oftentimes, the answer is to think of a broader question.

Step 3: Think about transitions

In my lesson, brainstorming the characteristics of poems provides hints of what to look for when analyzing the poems. 

As I thought more on this, I realized that brainstorming might not be enough. Learning through experience is the whole reason I decided to create this lesson and that’s what students need.

To accomplish this, I would play a recording of a specific style of poem that I want students to analyze. Students would listen to it and fill in the missing words they hear. The words I removed would determine the rhyme scheme of the poem. That way, I'm not-so-subtly guiding them to analyze rhyming.

When done, we’d go over the answers, and I’d initiate a discussion to get them to have a lightbulb moment by making the connection between ideas from the anchor chart and the rhyming words.

This activity would reinforce the ideas we brainstormed and provide some practice in analyzing. It also allows them to view the poem through the lens of their brainstormed ideas — their decompositions. 

Decomposition is the creation of the blueprint for the CT process. Decomposition is also what determines if your computational problem is one worth pursuing. If not, it’s probably time to zoom out!
 

ISTE U - Computational Thinking edtech PD

​​Nick Pinder is a project manager of computational thinking and higher education projects at ISTE. Nick is interested in the promotion of computational thinking and its intersection with language instruction specifically and the humanities in general.