Computational thinking (CT) refers to the thought processes involved in formulating problems so their solutions can be represented as computational steps and algorithms.(Aho 2011)This process requires programmers to break down complex problems and scenarios into bite size pieces that can be fully understood in order to then develop solutions that are clear to both computers and humans.
So, like programmers, those who apply computational thinking techniques will break down problems into smaller, simpler fragments, and then outline solutions to address each problem in terms that any person can comprehend. CT is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute.(Wing 2014)
In short, computational thinking encourages people to approach any problem in a systematic manner, and to develop and articulate solutions in terms that are simple enough to be executed by a computer – or another person.
The characteristics that define computational thinking are decomposition, pattern recognition / data representation, generalization/abstraction, and algorithms.(What is computational thinking? - introduction to computational thinking - KS3 computer science revision - BBC bitesize)(Google for education: Computational thinking)By decomposing a problem, identifying the variables involved using data representation, and creating algorithms, a generic solution results. The generic solution is a generalization or abstraction that can be used to solve a multitude of variations of the initial problem.
Another characterization of computational thinking is the "three As" iterative process based on three stages:
1.Abstraction: Problem formulation;
2.Automation: Solution expression;
3.Analysis: Solution execution and evaluation.[17]
Processes of Computational Thinking were taught in this module:
1.Decomposition – breaking down a problem into set of smaller problems;
2.Pattern Recognition – identifying similarities among problems which will help us make prediction
3.Abstraction – preserving information that is relevant in a context, while suppressing information that is irrelevant in that context of problem solving
4.Generalization – identifying shared among problems such that models could be adapted to the them;
5.Algorithm Design - a sequence of steps for solving a problem;