Computational thinking is problem-solving. More specifically, it is a set of skills and processes that enable individuals to navigate complex problems.

Computational thinking is derived from the approach used to develop code and program applications. However, the skills are much more broadly applied. Computational thinking is a map from curiosity to understanding that makes it easier to tackle both large and small problems. Both “plugged” and “unplugged,” computational thinking underscores the transition of student learning in an era when education is moving from content acquisition to higher-order thinking skills.

**Why is Computational Thinking Important for Students?**

This ability to navigate complex information and to think in a way that complements technological processes is essential to student readiness.

**Teaches students the process of defining (repeatable) solutions.**As a foundation for coding and computer science, computational thinking encourages students to reflect clearly on a problem they’re solving and intentionally define a repeatable solution for it.**Helps students learn to design technology-based solutions.**Computational thinking also encourages students to consider how they may leverage technology to aid in problem-solving. This is important because it empowers students in an increasingly digital world to utilize the technology around them.**Improves problem-solving skills.**Computational thinking teaches students to be diligent and organized in their work, to plan from the outset how they want to solve a problem but to embrace the fluidity of the process as they come to more and more understanding of the data and information they’re navigating.**Grows essential attitudes such as confidence and tenacity.**Computational thinking builds upon students’ social and emotional learning. It requires students to approach problems with curiosity and to embrace ambiguity with confidence. Because it requires testing and experimenting, it also teaches persistence.**Embrace lifelong learning.**The concept of computational thinking is to lead with inquiry. As many adults know—and many students have yet to know—learning is a lifelong process. By recognizing problems as learning opportunities, students are more likely to identify as lifelong learners.**Ask bold questions.**In computational thinking, students learn to ask bold questions and persist through complexities toward yet-to-be imagined solutions.**Develop a growth mindset.**In applying computational thinking, students collect and analyze resources, think critically and creatively in collaborative environments, and develop a growth mindset by learning to embrace ambiguity and reframe challenges as opportunities, whether with or without technology.

**Step-by-Step Example of Computational Thinking**

What does computational thinking look like in a real-world scenario?

Let’s say we’ve been tasked to bring doughnuts to the teachers’ lounge for our fellow educators. We take everyone’s order and have a sizable list of 100 doughnuts we intend to purchase, and we want to calculate the total cost before going to the shop.

We can use computational thinking to make this problem more easily solvable. Here’s how:

- We start by defining the problem: We want to calculate the total cost of the 100 doughnuts.
- Decompose the problem. While our initial reaction may be to grab a phone and start adding the cost doughnut by doughnut, but this is an inefficient and unnecessary approach to take. Instead, we can
*decompose*the problem into smaller steps: - Then we decompose the problem. While our initial reaction may be to grab a phone and start adding the cost doughnut by doughnut, but this is an inefficient and unnecessary approach to take. Instead, we can
*decompose*the problem into smaller steps:- We need to know the price of each type of doughnut.
- We need to know how many of each doughnut type we are buying.

- Pattern recognition. Once we’ve decomposed the problem, we’ll look for patterns to simplify the solution.
- Abstract the data. If we remove the extraneous details of the problem, what formula is left and is it applicable in other scenarios?
- Construct an algorithm. Finally, we’ll use the information from the problem-solving process to construct a repeatable algorithm that can be used in multiple scenarios.

Since we’ve already defined and decomposed the problem, we’ll start with step 3.

### Step 3: Decompose the Problem.

Instead of adding the cost up donut by donut, we’re going to decompose the problem by listing the price of each donut and the number of each donut type we are purchasing.

**Price List:**

- Bear Claws: $3.00 each
- Glazed Raised $1.60 each
- Old Fashioned $2.00
- Jelly Filled $2.10
- Maple Bars $2.15

**Number of Doughnuts by Type:**

- 25 Bear Claws
- 30 Glazed Raised
- 10 Old Fashioned
- 15 Jelly Filled
- 30 Maple Bars

### Step 4: Pattern Recognition

Now, with an organized list of the number of doughnuts and cost per type, we recognize that each item on the list **follows the same pattern**, which allows us to construct an equation to calculate the total cost for each doughnut type: 25 Bear Claws x $3.00 = $75. With the patterned data type, this equation easily repeats down the list:

- 25 Bear Claws: x $3.00 each = $75
- 30 Glazed Raised x $1.60 each = $48
- 10 Old Fashioned x $2.00 = $20
- 15 Jelly Filled x $2.10 = $31.5
- 30 Maple Bars x $2.15 = $64.5

Finally, we can then add the costs for each doughnut type to calculate the total: $75 + $48 + $20 + $31.5 + 64.5 = $239.

### Step 5: Abstract the Data

With the equations used to solve the problem, **we can abstract** a template with two formulas for calculating the total cost.

- Number of Items by Type x Price Per Unit = Cost per Item Type
- Cost Per Item Type + Cost Per Item Type + Cost Per Item Type = Total Cost

This can be applied to cupcakes, ice cream sandwiches, sandwiches, and more. The formula – with the noise and complication from the initial problem removed – is now an accessible tool.

### Step 6: Construct an Algorithm

We can then further extend the transfer of knowledge from this experience to ensure a reliable output every time by **constructing an algorithm** so that we and others can replicate it for more sweet celebrations.

- Step 1: Add up the items by type.
- Step 2: Assign the price per each item type.
- Step 3: Multiply the number of items by type with its cost per unit.
- Step 4: Add the total cost for each type together.
- Step 5: Bon Appetit!

As was hopefully represented in this computational thinking example, this process is a shift in how we approach problem solving. With a formulaic process, we can navigate complexity and stay focused on what is important without losing sight of the solution amongst the noise. Even though this was a basic example of computational thinking, it’s clear that the process can be replicated to solve problems with mass amounts of data and guide unknown journeys through these data-filled landscapes.

### Learning.com Team

Staff Writers

Founded in 1999, Learning.com provides educators with solutions to prepare their students with critical digital skills. Our web-based curriculum for grades K-12 engages students as they learn keyboarding, online safety, applied productivity tools, computational thinking, coding and more.

### Further Reading

## Learning.com (Again!) Named a Top Workplace

Learning.com has once again been named among the Top Workplaces in Oregon and Southwestern Washington! We’ve now been recognized 7 of the last 8...

## Supporting Digital Literacy Skills Outside Computer Class

In our rapidly evolving digital landscaping, digital skills are no longer optional, but a necessity for students of all ages. The definition of...

## How Schools Use Digital Literacy to Promote Digital Equity

Digital equity seeks to equip everyone with the technological capacity to participate in an increasingly digital world, whether as empowered...