Usage of Computational Thinking in Problem Solving Tasks
Before computers can be used to solve problems, they must be broken down into smaller problems so that it can be understood. Computational thinking techniques allow us to take problems in a way we can understand and solve them. We can then show these solved problems in a way that humans and computers can both understand. The way we solve these complex problems are by breaking them down into smaller problems which are more manageable to solve. The different computational thinking techniques include:
Once each problem has been broken down into smaller problems, we then focus on the important details, disregard irrelevant information and use this information to contemplate how similar problems have been solved in the past. Once problems have been broken down the information can then be used to program a computer to help solve the problem in the greatest way.
Logic is the first step in computational thinking, logic involves using existing knowledge to come to a suitable conclusion or solution. Logic is central to problem solving especially in computers as logic is the base reason to how a computer behaves. Logic helps us to get a basic understand of the conclusion that will be made and how we will reach that conclusion.
An algorithm is often referred to as a set of mathematical instructions or process to be followed often by a computer and is the next step in computational thinking. Algorithms identify each instruction that needs to be executed and plans which order they should be executed in. To create algorithms, logic must be used as a way of breaking down the problem. This is because it allows us to get a basic understanding of the problem to help reach a solution. Algorithms are commonly used in computer programs and instruct the computer step by step to complete specific tasks. For the computer to complete such tasks the computer must be provided with a clear algorithm. To help plan out a clear algorithm often they can be displayed as flow charts or pseudo code. Both flow charts and pseudo code help to display the clear structure that all algorithms must follow. There is a start, instructions and an end. Pseudo code, like algorithms follows a structure there is always input (usually in the form of a question and output which is often seen as information printed on a screen.
There is no set rules for writing in pseudo code however there some terminologies that are widely recognised and easily translate into coding equivalents such as:
- If/if else(often used for a decisions)
- While (a loop involving a condition, which is either true or false)
- For (another loop, often for counting)
Flowcharts are a way of displaying a set of instructions using a diagram. They have set symbols that can be used which all have different meanings as shown to the right.
Decomposition is the process of taking a complicated or long problem and breaking it down into small manageable sections, often making them easier to understand. When decomposition is missed out of problem solving it means that the overall solution to a problem will be hard to obtain. Deposition is essential as splitting the problem into smaller sections can lead to a quicker and more detailed solution, this is because you can have multiple personnel working on each small section in detail. This lessens the chance of essential parts of the solution being missed or overlooked.
Decomposition requires algorithms before the problem can be broken down into manageable pieces. This is because algorithms identify each instruction that needs to be executed and allows for planning the order in which they should be completed. Decomposition can be applied to complex problems but also simple problems also, such as making a sandwich.
When making a sandwich, things that may need to be considered include:
- What type of bread to use
- How many sandwiches we are making
- Is butter being used
- What filling is being used
Once the complex problem has been decomposed, the smaller problems can then be analysed for patterns. These patterns can help solve problems more efficiently as similarities may help solve problems in similar ways to other problems. It is important to look out for patterns because it helps solving different problems simpler. When problems share patterns, they allow us to use the same problem-solving approach and solution. The more patterns that are found the faster it is to solve problems.
In order to complete the patterns stage, decomposition must be done to break down each problem into manageable sections. If decomposition has not been completed then the final solution could be hard to obtain due to a higher chance of essential parts of the solution being missed or overlooked.
If patterns are not looked for when problem solving, then it would take longer to solve the problem and make it very inefficient. Also, it is possible that problems may be solved incorrectly if we are not looking for and comparing patterns. Sometimes after comparing problems we may not find any patterns or similarities, but it is important that comparisons are still made. An example of finding a pattern between problems that are the same or similar is decomposing the task of baking a cake. This method is important so that we know the solutions to a variety of smaller problems.
When baking a cake, it is important to break down the steps and separate it into smaller sections such as: · What type of cake is being made
- How many people the cake is being made for
- How long the cake needs to bake in the oven for
- At what point each ingredient needs to be added
- What equipment will be needed
Once a person knows how to bake a specific type of cake they will then know that baking another cake is similar but with different aspects. For example, not all cakes will take the same amount of time to bake at the same temperature and not all cakes will have the same ingredients added. Once patterns have been recognised, the next step is to find common solutions between the problems. Sometimes patterns can occur within the smaller problems that have been broken down. For example, baking a cake requires precise ingredients. Once each ingredient has been identified then this pattern can then be applied to all ingredients. 
Abstraction is the act of simplifying problems. It consists of finding what is important without concentrating on the detail. This makes it more efficient for managing any difficulty within problems. For example, a tree has many parts of it, looking at a tree with an abstract point of view would consist of just seeing the wood to build and create objects instead of identifying the leaves, atoms, cells and how trees produce oxygen that humans breathe. Another example could be looking at a fire evacuation plan, this plan would only consist of what a person needs to know to get out of a building if there was an emergency. This plan does not contain any extra unnecessary details. Abstraction occurs in our everyday lives, for example, timetables and calendars are created to create a routine by abstracting time. During school, pupils follow a structured timetable of different subjects, teachers and lessons following time.
Abstraction cannot be completed without patterns as patterns help to show similarities from previous solved problems. This makes solving the problem simpler, more efficient and can speed up the problem. Abstraction is important because a key feature of computing is how complex the systems that are built can be. It allows us to know what is vital and gives us manageable approaches to create our own solutions to problems. For example, within the computing industry abstraction can be used to see computer hardware as components rather than worrying about all the technical detail within each component. This is because the detail of what goes on within each component is not as important in some jobs. 
After computational thinking is used to help create a solution, it is vital that the solution is efficient and fit for purpose. Evaluating allows us to make sure that once the problems have been decomposed and solved, whether it can be improved. One way that can help improve the solution is by writing an algorithm to check to make sure it is easily understood, is efficient and solves the problem, is complete and meets all design criteria given. If an algorithm meets all these criteria, then it has a high chance of working well. Therefore, the algorithm can be programmed. If the solution is incorrect or faulty then this will result in difficulty writing the program or the finished program may not even solve the problem thoroughly. If the solution is faulty then it could be because the problem was not decomposed properly, incomplete, inefficient or it did not meet the design criteria.
Cite this Essay
To export a reference to this article please select a referencing style below