# Computational Thinking for Kids

This post is also available in: हिन्दी (Hindi) العربية (Arabic)

In the digital age, computational thinking (CT) is an essential skill for children. This systematic approach to solving problems is at the foundation of not just coding, but many other subject areas – and careers – as well.

## What is Computational Thinking?

Computers are being used to help us solve problems. However, before a problem can be tackled, the problem itself and the ways in which it could be solved need to be understood.

Computational thinking allows us to do this.

Computational thinking is the step that comes before programming. It’s the process of breaking down a problem into simple enough steps that even a computer would understand. We all know that computers take instructions very literally, sometimes to comic results. If we don’t provide computers with instructions that are precise and detailed, your algorithm might forget vital actions that most people take for granted.

For example, consider a simple activity like brushing your teeth. At first, it sounds like a simple enough task, but in fact, brushing your teeth involves many simple steps. First, you’ll need a toothbrush and toothpaste. You’ll need a sink with cold water. You’ll need to put the toothpaste on the brush. Don’t forget to turn on the water and run your brush underneath. As you see, such a simple activity actually involves many steps, if you miss one step or put one out of order you might end up with a huge mess!

Computational thinking allows us to take a complex problem, understand what the problem is and develop possible solutions. We can then represent these solutions in a way that a computer, a human, or both, can understand.

## Key Skills in Computational Thinking

There are four key skills to computational thinking:

• Decomposition – breaking down a complex problem or system into smaller, more manageable parts
• Pattern Recognition – looking for similarities among and within problems
• Abstraction – focusing on the important information only, ignoring irrelevant detail
• Algorithms – developing a step-by-step solution to the problem, or the rules to follow to solve the problem

### Decomposition

Decomposition is breaking down complex problems into smaller, more manageable chunks.  With young children, you can teach decomposition by getting them to teach you how to perform a simple task. Any simple activity like brushing teeth, making breakfast, or reading a book will work. Kids will need to break down the task into small simple steps. Be sure to give them a challenge and only do what is asked of you! With this activity, kids will quickly see how important it is to give EXACT instructions.

Decomposition allows kids to assess the problem at hand and figure out out all of the steps needed to make the task happen. One way to teach older kids the skill of decomposition is to have them build something by only showing them the finished project. Give them the supplies needed, and get them to make it without instructions. Children will need to figure out the steps needed to complete the final project.

Decomposition is an important life skill in the future when kids and adults need to take on larger tasks. Children will learn ways to delegate in group projects and build time management skills.

### Pattern Recognition

Pattern recognition is simply looking for patterns in the puzzles and determining could any of the problems or solutions we’ve encountered in the past apply here? What have we learned in the past that may help us sort out this problem?

If you’ve ever built a piece of IKEA furniture, you’ll understand the importance of patterns. When building an IKEA drawer unit it will likely take you much longer to assemble the first drawer than the fourth or fifth. When we repeat steps in our build we learn how to solve the instructions more quickly and learn from our mistakes. The painstaking process of assembling that first part teaches us the skills to perform the process more efficiently in the future.

IKEA Furniture

With young children we can use examples of everyday life to teach the concept of patterns (and loops for that matter), good examples are eating; the repetition of bringing each bite to our mouths, chewing, and swallowing.

There are lots of ways to teach pattern recognition in the classroom. Younger children may benefit from exploring patterns using music or colored blocks. Older kids may learn about patterns by looking at the periodic table or exploring the patterns seen in multiplication charts.

Kids who love LEGO can use their building skills to explore patterns. In LEGO sets there are often repeated patterns for similar parts of a build. For example, a LEGO set may require 4 wheels to be built the same way. Teachers could give students an object to build that has several repeated patterns and only give instructions for the first part.

### Abstraction

Pattern generalization and abstraction helps children learn to identify the details that are relevant to solving the problem and ignoring the details that aren’t relevant to the issue at hand. Identifying the crucial information in a problem and disregarding the irrelevant information is one of the hardest parts of computational learning.

Escape rooms are an example of a popular activity that helps to build on the concepts of pattern generalization and abstraction. Participants will have to solve a series of puzzles, riddles, and locks to escape their room in record time.

Escape rooms often have lots of irrelevant details and props designed to throw the participants off course. Only the best abstractors will be able to sort out the relevant details for solving their puzzle. A classroom escape room activity is a perfect way to get kids to use their abstraction skills while having fun.

Younger kids may benefit from a building activity where a variety of extra pieces and objects are given that aren’t part of the design. Children will have to understand which pieces are important to the design and which are irrelevant.

### Algorithm Design

Algorithm design is setting out the steps and rules needed to follow in order to achieve the same desired outcome every time. An easy way to teach this concept to young learners is to give them a task and tell them to write down the steps. A common one is the steps to making a peanut butter and jelly sandwich. Have each child write down all the steps and then have them trade with another child.

Using only the directions in front of them have them make their sandwiches. This will comically illustrate the importance of including small directions like “using a knife” or “putting the pieces of bread together” to form the sandwich.

Each skill is as important as the others. They are like legs on a table – if one leg is missing, the table will probably collapse. Correctly applying all four techniques will help when programming a computer.

## Computational Thinking and Coding

While computational thinking is the problem-solving process that can lead to code, coding is the process of programming different digital tools with algorithms. It is a means to apply solutions developed through the processes of computational thinking.

Algorithms, in this case, are a series of logic-based steps that communicate with technological tools and help them execute different actions. All those computer science examples shared earlier? Those all rely on code.

When coding programs, there are existing algorithms, like scheduling, route-finding, or compression algorithms, that coders need to know, but there is also the need to create new algorithms.

Beginning to develop students’ coding prowess, however, does not require formal practice with either of these or even access to technology. Have students map directions for a peer to navigate a maze, create visual flowcharts for tasks, or develop a coded language.

In whatever way it’s approached in the classroom, coding encourages students to communicate clearly and logically through an algorithm. To arrive at an algorithm (especially as algorithms advance in complexity), they must apply computational thinking to solve problems and practice metacognition as they do so.

In this process, students become more adept technology users in general and can leverage these to advance and deepen their learning as they inherently practice computer science both in and out of the classroom.