When you think of coding, you likely picture someone sitting down at a computer and typing out lines of code – creating letters, numbers, and symbols that tell the computer what to do.
But how do they know what code to write, and how can a child learn how to turn their ideas into these lines of code? The answer is found in a process called computational thinking.
Along with being crucial to the coding process, computational thinking is important as a career and life skill. It is the driving force behind many of the top reasons kids should learn to code — especially for fostering problem-solving and creativity.
What is Computational Thinking?
Computational thinking is really just a problem-solving skill. Imagine that you have a hamper full of dirty clothes. Here is the problem: you need clean clothes. Obviously, the solution is to clean the clothes.
That sounds simple enough, right? But the process actually has a lot of intricacies when you think about it. At first, you might break it into three steps: wash the clothes, dry the clothes, and fold the clothes.
But each of these steps has individual substeps. When washing the clothes, you need to properly pack the washer, measure out the detergent, add fabric softener, etc. You also need to check for certain types of stains that might need to be treated separately.
Now imagine trying to write an instruction set for cleaning clothes. It sounds complicated, doesn’t it? Computer science is all about taking these complicated processes and converting them into lines of code in a programming language (e.g., Scratch coding, Python, JavaScript). Computational thinking helps by offering a framework for doing just that.
There are four cornerstones in the computational thinking process.
- Decomposition — Breaking down the problem into smaller, manageable parts
- Pattern recognition — Finding similarities within and between problems
- Abstraction — Focusing only on important aspects of the problem, ignoring irrelevant details
- Algorithm design — Developing a step-by-step solution to the problem
Teaching Computational Thinking
Educators generally teach computational thinking through the four cornerstones we mentioned earlier. Along with their use in computer programming, each of these cornerstones has real-world uses that can readily be introduced to elementary-school-aged children.
Decomposition
Introducing young children to decomposition can begin with even day-to-day activities. You can take any complex problem and help them decompose it by finding all the individual tasks involved.
For example, you can use the process of getting ready for school in the morning. The steps they break this down into will include getting dressed, gathering schoolbooks, and more. They can further break each of these steps down into even smaller steps. As they do this, they are learning decomposition.
Pattern recognition
Pattern recognition involves making generalizations about processes and objects. As with many computational thinking skills, kids are already doing this, they just need to understand how they are doing it.
When kids see a chair, they recognize it as a chair. This is true even if they’ve never seen that chair before. You can bring this process to the forefront by simply asking them the following types of questions. Of course, this can also be done with any other object the child is familiar with. How did you know that was a chair? What do all chairs have in common? What’s the difference between a chair and a couch? What about a chair and a bed?
Abstraction
Abstraction is all about learning to ignore unimportant details. Video games are an excellent learning experience for this skill. There are bright lights and highly detailed objects everywhere they look in the game, but they still manage to find the aspects important to their given goal.
Teaching abstraction can go hand-in-hand with teaching pattern recognition. Coming back to the chair example, you can ask the child to describe a chair then help them understand what details are and aren’t important in their description. In essence, this is adding critical thinking to the process. Does a chair really need to be wooden? Does it need four legs?
Algorithm design
In the first three cornerstones, students identify individual steps, recognize patterns, and abstract away unnecessary details. The last part, algorithmic design, involves taking those steps, patterns, and abstractions and putting them together into a set of instructions.
Teaching algorithm design is best done with a very simple example algorithm for kids. Instead of focusing on the entire process of getting ready for school, you can focus on a process like getting dressed for school.
You can talk them through the steps they are taking, including any important aspects of sequencing and any conditionals — e.g., if your shirt has buttons, then button them. Lastly, you can find opportunities for other problem-solving skills such as debugging if, for example, they put their shirt on backward.
With this last cornerstone in place, your student has everything they need to start using their computational thinking skills!
Final Thoughts
Learning computational thinking is an important step toward becoming a programmer, but its use in problem-solving is what makes it a crucial part of any lesson plan.
This ability is applicable to a 10-year-old playing with legos, a high school student learning algebra, or a career professional designing a new marketing strategy for their company. Even automation and artificial intelligence — two of the most popular technology trends of the 21st century — are all about integrating computational thinking into the real world.
Juni Learning offers coding for kids that teach computational thinking as well as many other computer science basics. Take a look at our award-winning courses and curriculum, or speak with a Juni Advisor by calling (650) 263-4306 or emailing advisors@learnwithjuni.com.