Computational thinking for parents
Why is computational thinking important?
A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.
The highly ambitious computing curriculum places computational thinking and creativity at its heart. These two concepts underpin the entire computing curriculum. They add the additional dimension and encourage digital creativity and play-based learning. The change impacts all children from age 5 to 16. But why is it so important?
Computational thinking allows us to take complex problems and solve them effectively. Computational thinking is important in every sector. So much of the modern workplace is about solving problems, whether it’s a small problem to enhance business efficiency or developing a breakthrough product for consumers. Even if you’re not involved in programming, chances are you will be involved in solving problems in some way.
Our current workforce is largely made up of consumers of technology, and not enough developers. With the latest innovations, an increasing number of jobs are becoming automated and data driven. Using computers is an essential skill for all employees now. Understanding them is key to our increasingly digital future.
What is computational thinking?
The working definition of computational thinking that most academics currently subscribe to was proposed by Jeannette Wing in 2006
Computational thinking builds on the power and limits of computing processes, whether they are executed by a human or by a machine. Computational methods and models give us the courage to solve problems and design systems that no one of us would be capable of tackling alone…Most fundamentally it addresses the question: What is computable? …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 is a thought process with the emphasis on it being a set of thinking skills that we can use to help solve problems effectively. What exactly are these thinking skills? Well there is still some debate over that, but here is what is commonly agreed:
- Logical reasoning
- Algorithmic thinking
Logical reasoning enables us to make sense of problems by analysing existing facts and thinking about these in a clear and logical manner. We often use logical reasoning to make sense of all sorts of things, from the everyday problems that life throws at us to puzzles and games such as Sudoku and Plants Vs Zombies.
In computing we ask our learners to use logical reasoning when they are testing and debugging their programs. Through logical reasoning we can often employ the other computational thinking techniques such as abstraction, decomposition and algorithmic thinking.
[LINK] check out our Jazzy Jigsaw activity here
Algorithmic thinking is arriving at a solution to a problem and the steps necessary to implement it. Another way to think of an algorithm is as a series of instructions or steps to solve a problem. Thought of in this way, we realise that steps to solve problems or instructions can be found all around us, in our everyday lives as well as in other subjects. For example, when following a precise method for a science experiment, or following a recipe for a dish; we use algorithms in maths and even PE teachers will give us the instructions we need to follow when we are learning a new sport.
Good instructions are clear, precise and follow a logical order that leads the person following them to solve the problem. Algorithmic thinking is one of the fundamental thinking skills behind programming. Good programmers are able to think algorithmically. But, described in this way we can see that algorithms can apply to a range of circumstances, not just computer programs.
If we begin to think of algorithms simply as a set of well-defined instructions, we can then begin to develop some interesting and engaging activities around them.
[LINK] PRACTICE ALGORITHMIC THINKING WITH PLAYDOH
Abstraction is another key thinking skill and often follows on from generalisation. When describing a concept or idea/solution we can make it easier to explain by hiding any unnecessary complexity to reduce the details. Abstraction is yet another key skill that we use in so many ways and in so many subjects. For example, you might ask your child “are you ready for school tomorrow”. Your child will know that this question includes things like, is the homework done, is the bag ready, is the uniform ready etc. If this is a question that you ask regularly, then you do not need to go into all the details every time. In computing, pupils creating and playing their own computer game would be an abstraction hiding the complexities of the game mechanics underneath.
Art is the elimination of the unnecessary. Pablo Picasso
Abstraction is important as it makes problems easier to think about. There is a skill in it, it’s important to choose the right details to hide without losing important information. One popular example is the use of models. Consider a map. A map is a model of a system. That system might be a city, a theme park or the map of the London Underground. If we use the City of London as an example, there are several maps available. You can get a road map of London, as well as the London Underground map, plus special tourist maps. If I was a tourist for a day, a special tourist map would help me be able to plan what attractions I was going to visit today, but I’d use the London Underground map to help me plan how I was going to get from the first attraction to the second. Likewise, the road map may be the best option out of the three if I was going to plan the route I was going to take while driving from home to my new place of work. Each map is an abstraction of London. They all provide slightly different information; as different details have been hidden. For example, the tourist map may not display all the many small side streets in London; but they are all suitable for purpose.
Being able to understand and use abstractions is a key computational thinking skill and often combines with generalisation and decomposition.
Decomposition simply means to break an idea/problem/solution/system down into smaller parts. Each part can then be dealt with (and solved) independently, thereby making larger systems easier to deal with. Pupils constructing products in Design & Technology use this thinking skill all the time. They often have to look at an item (i.e. a chair) and break it down into its smaller parts (i.e. legs, seat, back rest etc.). Each part can then be individually designed and adapted.
Decomposition allows large and complex systems to be developed simultaneously by teams of people. For example, consider popular games such as the Assassins Creed series, Tomb Raider or FIFA. These are large and complex games and are developed over years by teams of people. Decomposition enables the game to be broken down into its component parts, so for example, there will be a group of artists responsible for creating all the in-game artwork, sound engineers, programmers and many more. Each person will have their own set of responsibilities. Yet, when we play the game we see a single product.
Evaluation is a thinking skill you are likely to be already familiar with. In schools we ask pupils to evaluate the effectiveness of their work all the time. The only thing to remember here is that in computing we are often looking at the effectiveness of algorithms. Does the algorithm do the job it intended to do? Is it fast enough? Is it fit for purpose? A chef will evaluate their recipe by testing it first. They will follow their recipe to make the dish, and taste it when it’s done. At that point they will consider the taste of the dish, do spices need to be added for instance; as well as how long it took to make. They may also consider whether the recipe is easy enough for other chefs to follow without making mistakes. The answers to these questions will help them adapt and further improve their recipe as required.