Introduction

Computational thinking is an essential prerequisite for anyone wanting to learn to program computers and write code.

Different definitions of computational thinking exist. However, computational thinking can be described as a set of strategies to enable people to solve problems, especially complex ones. The BBC provides a good definition:

“Computers can be used to help us solve problems. However, before a problem can be tackled, the problem itself and the ways in which it could be solved need to be understood. Computational thinking … allows us to take a complex problem, understand what the problem is and develop possible solutions. We can then present these solutions in a way that a computer, a human, or both, can understand.”


Arrows pointing different ways

Problem scenario

Four friends are out on an afternoon bushwalk. Their plan was to go only for a short hike, so no-one has brought along an emergency beacon, and all mobile phones were left in the car. Everyone has a water bottle, though these are no longer full, but no-one brought a map as the trail they were planning to follow is clearly marked and signposted.

However, they all left the trail together in a great rush when they heard a distant cry for help. After some fast walking through dense bush trying and failing to reach whoever made that distress call, they realise quite suddenly that they are lost. The cries sound much more distant now, but when they retrace their steps to what they thought was the path to strike out in a different direction, they cannot find it.

The sun is starting to sink, it is growing colder, they are now hopelessly lost, and everyone is starting to feel hungry …

So what do they do?

Arrows pointing different ways

Breaking down a complex problem

This is a complex problem. As we progress through this lesson, we will learn how to break this problem down so that we can start to solve it. Let’s first come to grips with what computational thinking is.

The four components of computational thinking
The four components of computational thinking

There are four essential components of computational thinking:

  • Decomposition – breaking a problem down into more manageable parts so that solutions can be found for each
  • Pattern recognition – looking for similarities within a problem or with other problems so that past solutions or knowledge can be re-used
  • Algorithms – developing step-by-step solutions to each part of the problem
  • Abstraction – generalising (abstracting) the important detail to make a solution reusable

Professor Jeannette Wing raised computational thinking as an important issue for researchers in a 2006 paper. She stated, “Informally, computational thinking describes the mental activity in formulating a problem to admit a computational solution. The solution can be carried out by a human or machine, or more generally, by combinations of humans and machines.”

brain

Wing believes that computational thinking is just as important a skill for school children to learn as reading, writing and arithmetic. Increasingly, schools are including computational thinking in school curricula.


But first, do no harm …

While automation brings many benefits, such as lightning-fast data capture and analysis, it can also render decisions and analysis opaque and overly rigid. The famous phrase ‘Computer says no’ from the TV show Little Britain is a perfect example of this kind of intransigence. Experiences of this kind will frustrate users.

Algorithms have also been criticised for bias. As Karan Praharaj says: “Algorithms do what they’re taught. Unfortunately, some are inadvertently taught prejudices and unethical biases by societal patterns hidden in the data … When these algorithms do the job of amplifying racial, social and gender inequality, instead of alleviating it; it becomes necessary to take stock of the ethical ramifications and potential malevolence of the technology.”

Use automation, but use it wisely, and ethically, and always with lashings of human oversight.


What’s next?

Our friends in the bush are still in the shouting, blaming and squabbling stage of their predicament, so while they are occupied in NOT solving their problem, we will look at computational thinking in a little more detail and examine how we can use each step to solve a maths problem.


References

  1. British Broadcasting Corporation BBC Bitesize. KS3: Introduction to computational thinking.

  2. (2006) Wing, Jeannette M. “Computational Thinking”, Communications of the ACM, March 2006, Vol. 49 No. 3, Pages 33-35. DOI: 10.1145/1118178.1118215.