2.3 Children and computational thinking
Computational thinking is a way of thinking to solve problems.
It allows you to take a complex problem, analyse it, break it down and develop possible solutions.
The term was popularised by Jeanette Wing, Professor and Head of Computer Science at Carnegie Mellon University. She was keen to emphasise that computational thinking is not about developing software, interrogating data or writing a game – although that might be the end result – but it is the development of thinking skills that support learning and understanding.
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability… Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science. Computational thinking includes a range of mental tools that reflect the breadth of the field of computer science.
Computational thinking is a logical thought process by which problems can be solved (Csizmadia et al., 2015). It covers key areas or steps in problem-solving.
Logic (or logical reasoning) is the process by which we make sense of and understand why things happen. Children often do this instinctually. For example, a child may watch an adult use a tablet, begin to experiment for themselves and very quickly begin to develop a mental model of how it works, swiping or tapping on the screen to get the response they want. It is about connecting action and reaction or, in terms of computing, connecting an ‘input’ to an ‘output’ and using your knowledge about a system to predict how it will behave, or why it is not behaving quite as it should.
Decomposition involves taking a problem and breaking it down into a series of small and more manageable parts. These smaller parts can then be analysed and solved separately. This is an approach that children use, for example, when they write a story: the teacher might encourage them to break it down and think about plot, characters and setting. It also involves thinking about and recognising the importance of sequencing, for example, when baking a cake children will quickly learn that the eggs must be broken before they can be beaten with the sugar.
Once a problem has been decomposed, you look for similarities and patterns in the smaller parts that will help you solve them quickly and more efficiently. You try to generalise. Can the solution to one part be used or adapted to solve another part? Patterns can very quickly lead to rules. For example, in maths children may explore the angles in a triangle and eventually discover that they always add up to 180 degrees. Once that pattern has been discovered, subsequent problems are easier to solve.
Abstraction is the process by which you ignore the irrelevant parts of a problem and remove unnecessary detail. It is a way of dealing with complexity. For example, when teaching young children about the solar system, adults may ignore many of the complexities and create a more abstract and simple model of the planets orbiting around the sun. One of the most famous examples of abstraction is the 1933 London Underground Map. This ignored the actual distances between stations and instead focused on the key areas necessary to help people navigate the system and see how the lines and the stations connect.
An algorithm is a set of step-by-step instructions used to solve a problem or complete a task. Think about the steps to tie a shoelace, plant a seed or make a cup of tea. These are all simple examples of algorithms and there can be many different algorithms to complete the same task. In making a cup of tea for example, most algorithms will start with boiling the kettle but will then vary as to when the milk is added or if sugar is used.
Boil kettle → put teabag in cup → add boiling water to cup → wait 1 minute → remove teabag → add milk
In computing, computer programs are created using algorithms. The programmer will try to find the quickest and most efficient way of completing a task. For example, numerous algorithms are used to decide the order of results when you search the internet, to ensure what the user most likely wants is at the top of the list.
Evaluation and de-bugging the solution to a problem will ensure it works as it should and does so efficiently. For example, the route you have plotted to get to the museum may get you there, but could it be done more quickly? Evaluation may also be about whether the solution is elegant or pleasing. For example, when children write a story they are not simply making sure that it has a plot, characters and setting; they are also evaluating whether it’s funny, sad or suspenseful. In computing, evaluation is the process of refining and ‘optimising’ the solution. When applied to computer programming, evaluation usually leads to ‘debugging’, the process by which mistakes or ‘bugs’ in the algorithm (the program) are found and fixed.