User interface language: English | Español

Date November 2019 Marks available 3 Reference code 19N.1.SL.TZ0.6
Level SL Paper 1 Time zone no time zone
Command term Explain Question number 6 Adapted from N/A

Question

Explain why abstraction is required in the design of algorithms.

Markscheme

Award [3 max].
Abstraction allows us to create a general idea of what the problem is and how to solve it;
Abstraction removes all specific detail, and any patterns that will not help in solving a problem. This helps in forming a “model” (If designers don’t abstract they may end up with the wrong solution to the problem they are trying to solve);
Abstraction is widely used because there exist a number of “patterns” in programming that keeps repeating in every application/program;
The pattern corresponding to an issue can be found, then the abstract solution to it can be found and implemented, and the problem is solved;
Most programming languages provide some built-in abstract patterns, which are easy to use (some API provides more advanced patterns);

Abstraction is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics;
In object-oriented programming, abstraction is one of three central principles (along with encapsulation and inheritance);
Through the process of abstraction, a programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency;
The resulting object itself can be referred to as an abstraction, meaning a named entity made up of selected attributes and behavior specific to a particular usage of the originating entity. Abstraction is related to both encapsulation and data hiding;

Examiners report

Candidates generally found this question more difficult, with very few responses scoring more than 1 mark. Candidates who did gain marks recognised that abstraction enables a programmer to represent the main features of a problem, in order to solve it, without including irrelevant detail.

Syllabus sections

Topic 4: Computational thinking, problem-solving and programming » 4.1 General principles
Topic 4: Computational thinking, problem-solving and programming

View options