What is computational thinking?
Computers can be 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 allows us to take a complex problem, understand what the problem is and develop possible solutions. We can then present these solutions in a way that a computer, a human, or both, can understand.
The four cornerstones of computational thinking
There are four key techniques (cornerstones) to computational thinking:
- decompositionThe breaking down of a system into smaller parts that are easier to understand, program and maintain. - breaking down a complex problem or system into smaller, more manageable parts
- pattern recognitionFinding similarities and patterns in order to solve complex problems more efficiently. 鈥 looking for similarities among and within problems
- abstractionThe process of separating and filtering out ideas and specific details that are not needed in order to concentrate on those that are needed. 鈥 focusing on the important information only, ignoring irrelevant detail
- algorithmA sequence of logical instructions for carrying out a task. In computing, algorithms are needed to design computer programs. - developing a step-by-step solution to the problem, or the rules to follow to solve the problem
Each cornerstone 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 in practice
A complex problem is one that, at first glance, we don't know how to solve easily.
Computational thinking involves taking that complex problem and breaking it down into a series of small, more manageable problems (decomposition). Each of these smaller problems can then be looked at individually, considering how similar problems have been solved previously (pattern recognition) and focusing only on the important details, while ignoring irrelevant information (abstraction). Next, simple steps or rules to solve each of the smaller problems can be designed (algorithms).
Finally, these simple steps or rules are used to programSequences of instructions for a computer. a computer to help solve the complex problem in the best way.