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.