Decomposition and abstraction - EdexcelComputational thinking
Decomposition is a crucial step for an algorithm to be designed effectively. Once a problem is broken down into smaller steps, it can then be understood much easier, rather than attempting to solve it as a whole.
Computers can be used to help solve problems. However, before a problem can be tackled, the problem itself - and the ways in which it could be solved - needs to be understood.
computational thinkingA problem-solving method using computer science techniques, where possible solutions are developed and presented in a way that can be understood by humans and computers. helps with this. It allows us to take a complex problem, understand what the problem is and develop possible solutions. These solutions can then be presented in a way that a computer, a human, or both can understand.
Two important elements of computational thinking are:
decompositionBreaking down a complex problem into smaller, more manageable sub-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.
Complex problems and computational thinking
A complex problem is one that - at first glance - does not have an obvious, immediate solution.
Computational thinking involves taking that complex problem and breaking it down into a series of small, more manageable problems.
Each of these smaller problems can then be looked at individually.
Next, simple steps to solve each of the smaller problems can be designed.
Finally, these simple steps are used to program a computer to help solve the complex problem in the best way.
Logical reasoning
Logical reasoning is not programming. Put simply, programming tells a computer what to do and how to do it. Logical reasoning enables programmers to work out exactly what to tell the computer to do.
For example, if you agree to meet your friends somewhere you have never been before, you would probably plan your route before you step out of your house. You might consider the routes available and which route is ‘best’. This might be the route that is the shortest, the quickest, or the one which goes past your favourite shop on the way. You'd then follow the step-by-step directions to get there.
In this case, the planning part is logical reasoning, and following the directions is like programming.
Being able to turn a complex problem into one that can be easily understood is a skill that is extremely useful.