Understanding the four pillars of Computational Thinking
Photo by Olav Ahrens Røtne on Unsplash
Some people like to think of computational thinking as something directly related to coding or programming, but its not just about programming. Its an approach to developing solutions to problems using concepts and ideas from Computer Science.
To put it simply, Computational thinking involves breaking down problems into subproblems, looking for patterns or similarities, identifying important details, and developing a plan of action.
This broad problem-solving technique is branched into: Decomposition, Pattern Recognition, Data Representation and Abstraction, Algorithms. These are what we call the undefined of Computational thinking.
Let’s take a look at each one of them:
Decomposition:
The process of breaking down a complex problem into less complex or more manageable subproblems.
Complex problems can be overwhelming but can be dealt with if broken down into subproblems that are comparatively easier to solve. The solutions to these manageable subproblems can then be merged to solve the original complex problem.
Pattern Recognition:
When we decompose the problem, we find patterns among the subproblems (similarities or shared characteristics). Discovering these patterns make the complex problem easier to solve since we can use the same solution for each occurrence of the pattern.
Data Representation and Abstraction:
It involves determining what characteristics of the problem are important and filtering out those that are not. We use these important characteristics to create a representation of our problem at hand. These important characteristics are determined keeping in mind our objective while dealing with the task/subproblem and help us focus on the bigger picture.
Algorithms:
A set of step-by-step instructions of solving the problem.
An algorithm is, in some sense the pinnacle of computational thinking, and builds on decomposition, pattern recognition, and data abstraction. By describing how the problem is to be solved in a step by step manner, an algorithm identifies what is to be done, the instructions, and the order in which they should be done.
References:
https://www.coursera.org/learn/computational-thinking-problem-solving