Can you solve problems? Computational thinking is simply one way to solve problems. While programmers use these skills to write software programs, in reality the same skills can be used in many school subjects, as well outside a classroom.
Computational thinking also is one way everyone, even people who hate programming, can learn to become educated consumers of technology. While some of these projects involve coding, the process of computational thinking does not involve code. It involves engaging problems and working towards solutions. You learn how technology is created at its most fundamental level.
This article presents a small set of projects you can find online at Google. While geared towards teachers, anyone of any age with some time and a little patience can work through these exercises and learn computational thinking.
What is Computational Thinking?
Computational thinking matters because computer science and programming rely heavily on problem solving. Thinking like a computer, using computer science concepts that make computers possible, is one way to become an effective programmer and computer scientist.
There are several variations of computational thinking. However, this method involves at least these steps:
- Break down the problem. Have you ever tasted garlic? Once you taste it, you probably will recognize garlic flavor in food. Breaking down a problem operates in a similar way: identify the obvious parts of the problem then break those parts down into smaller and smaller bits. In math, for example, 6 can be broken down into 3+3, 5+1, 3*2, 7-1, 12/2 and other combinations of numbers and operations.
- Find and identify any patterns in the problem. Once you have your problem broken down into many parts, try to sort parts into logical groups based on the nature of the problem. If you want to understand how a bird flies, for example, how the wings work is one logical group, how the head moves is another group, and how the tail of the bird works is another group.
- Filter and prioritize information about the problem. When you break down any problem into its parts, you realize some parts are more important than others. If you focus on the important parts of the problem, and understand how all the parts of a problem fit together, then you can take the next step.
- Design possible solutions. The design of possible solutions includes trying out different solutions to identify the strengths and weaknesses of any solution. While you might stumble on the perfect comprehensive solution, chances are designing solutions will be a repetitive process where you try out your ideas to see what works and what fails.
Can you see how this method also works well with any subject? The difference is simply using computer science. Hopefully you also see how this four step approach to solving problems is similar to the scientific method: observe, hypothesize, experiment, and form conclusions. Both are structured ways to think about then solve problems.
With this simple understanding in mind, here are a few projects you can work through to learn computational thinking. There are more projects at the bottom of this article, along with links to learn more.
Describe an Everyday Object
This first project appears to be way too easy. But it’s hard. There’s also no math or science or programming involved.
Think of an object. Let’s say you imagine a bicycle. Now describe a bicycle to someone without using the words bicycle or bike. To make it more difficult, think about the four elements of computational thinking:
- Break down the problem: what is the reason bicycles exist? How do they function? What are all the parts you find in a bicycle? Are any of those parts not needed? Are parts missing? For example, could you have a four wheel bicycle? What materials are bicycles made of? What senses do bicycles use, for example, would you ever taste a bicycle, what sounds do they make, how do they feel to your hands?
- Find and identify any patterns in the problem. Take a piece of paper and write down all the parts of a bicycle based on breaking down the problem of how to describe a bicycle without using the words bicycle or bike. Can you group parts of a bicycle together? For example, would you group the handlebars with the pedals and gears? Or would you group the pedals and gears with the wheels? Or with the wheels and the bicycle frame?
- Filter and prioritize information about the problem. When you describe a bicycle to someone without using the words bicycle or bike, what are the most important details to tell the person? What are the least important details?
- Design possible solutions. Given all the information you have collected and organized, what are some ways to describe a bicycle? What is the simplest fastest way to describe a bicycle without using the words bicycle or bike? If you want to draw out your description, what is the most mysterious way you could describe a bicycle?
Once you work through this process with a simple object, try a more complex object such as a house. Or a computer. Or an oven. Imagine you have invented the object and you need to tell someone not only about the object but also what the object can do, the problem(s) your object solves, what your object cannot do, and other details.
And as you work through these four steps, especially as you group and prioritize the parts of your problem/object, try different ways to sort information. You might use a simple list. Or you might use a table with columns for the name of each part, its priority, what group the part belongs to, and a description of the part. You might even open up a spreadsheet and convert your table into a simple spreadsheet to sort by priority or the groups parts belong to.
If you do this project in a group, take about 30 minutes to select an object and work through the computational thinking process, then finally describe the object to others. Finish up with maybe 15 minutes of reflection time as a group to discuss what worked and what did not work, as well as ideas to do a better job describing objects this way.
Another way to think about this project is to look at the problem: describe an object without using a common word for the object. If you choose to describe a bicycle, notice the problem doesn’t specify which kind of bicycle. We could choose a tricycle, a bicycle, or some other form of bike. There are motorized bikes and pedal bikes. We also could choose to describe a bicycle built for small children, older kids, or adults. The problem statement, in other words, is too broad and needs to be defined as you solve the problem of describing an object without using a common word for the object.
Finally, if you think this is too simple a project, look up patents online for common objects. You’ll discover all patent applications have to describe objects in ways that are both simple and unique. For example, search for the object house and you will find patents for portable houses, tropical houses, landlocked floating houses, doll houses, poultry houses, annular houses, and more.
Multiplying by Numbers Between 0 and 1
In this project, you will need a calculator to come up with your answers. For each calculation on the left, determine the product or result in the center column, and write down whether the product is less than or greater than 100:
|less than 100 or greater?
From your results, would you say there is a pattern that 100 multiplied by a number between 0 and 1 will always give you a number less than 100? What happens if you multiply 100 by the largest three digit number between 0 and 1? What happens if you multiply 100 by the smallest three digit number between 0 and 1?
You can generalize and say 100 multiplied by any number between 0 and 1 will yield a number greater than 0 but less than 100. This is an example of a pattern in computational thinking. From a set of calculations, starting with a diverse random set of possible numbers between 0 and 1 to the highest possible number and lowest possible number, we can state the product will be between 0 and 100.
More Computational Thinking Projects
The Google site has a number of other computational thinking projects to work through. While many can use Python, there are links and examples to help you work through the exercises. And there are a few more English Language projects like the first one.