OCR H446 A-level Knowledge Compendium
What is abstraction?
Abstraction is the process of reducing complexity by removing unnecessary detail and focusing only on the essential features needed to solve a problem or understand a system.
In computational thinking, abstraction allows us to:
-
Manage complex problems more effectively
-
Create generalised solutions
-
Communicate ideas clearly
-
Design systems that are easier to develop, test, and maintain
Abstraction does not mean losing information arbitrarily. Instead, it means deliberately choosing which details are relevant at a particular stage.
In Computing
Abstraction is used in computing in a variety of situations, including the design of algorithms, the creation of data models, whenever we write functions, or APIs, or model real-world systems. The key idea is that different levels of abstraction exist, and each level hides detail from the one above it. A good comparison for this would be something like the layering of protocols in networking. Each one serves its own purpose and hides complexity from the others.
Real-world analogy
Consider a map:
A road map does not show all trees, buildings, or pavement slabs. It certainly doesn’t show every blade of grass! Some maps even ignore distance, like tube maps in London – when you take the tube, you don’t really need to worry about physical distance. Each map is designed for a specific task, so it is an abstraction for that purpose.
Abstraction therefore is not a perfect representation of reality.
Some details are omitted, assumptions may be made, and edge cases may be ignored – but relevant behaviour is retained and over-complicated situations can be simplified. This is important for computer scientists, since we often have to grapple with complex programs and problem solving. Common examples of where abstraction is used to great effect include functions, libraries, and even variables.
Finish Course Early?
You have not completed all required lessons and assessments.