Introduction
Last updated on 2024-11-12 | Edit this page
Estimated time: 75 minutes
Overview
Questions
- What is computational thinking?
- What are the four components of computational thinking?
- How can computational thinking help solve complex problems?
- Why is ethical consideration important in automation and algorithm design?
Objectives
- Understand the concept and importance of computational thinking
- Learn the four components of computational thinking: decomposition, pattern recognition, algorithms, and abstraction
- Recognize how computational thinking can be applied to solve complex problems
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.”
Problem scenario
Four friends are out on an afternoon walk through a forest. 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 woods 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?
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.
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. This is also called factoring.
- 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
Callout
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.”
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.
Jargon busting (Optional, not included in timing)
The Jargon Busting exercise is a helpful way to begin to explore terms, phrases, and ideas related to code and software development.
This exercise can be useful when you teach Computational Thinking as the introduction to a full LC workshop, especially if you want learners to have an opportunity to meet each other and interact. It can take anywhere from 10 to 45 minutes, depending on your approach.
What’s next?
Our friends in the forest 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.
Key Points
- Computational thinking involves strategies to solve complex problems and can be applied to both humans and computers.
- The four components of computational thinking are decomposition, pattern recognition, algorithms, and abstraction.
- Computational thinking is essential for problem-solving in programming and other fields.
- Ethical considerations and human oversight are crucial in automation to avoid biases and ensure transparency.
References
British Broadcasting Corporation BBC Bitesize. KS3: Introduction to computational thinking.
- Wing, Jeannette M. “Computational Thinking”, Communications of the ACM, March 2006, Vol. 49 No. 3, Pages 33-35. DOI: 10.1145/1118178.1118215.