2.1.1. Thinking Abstractly-2
2.1.1. Thinking Abstractly-2
www.pmt.education
Specification:
2.1.1 a)
● The nature of abstraction
2.1.1 b)
● The need for abstraction
2.1.1 c)
● The difference between abstraction and reality
2.1.1 d)
● Devise an abstract model for a variety of situations
www.pmt.education
The nature of abstraction
Abstraction is one of the most important principles in computer science. It is the act of
removing excessive details to arrive at a representation of a problem that consists of only
the key features. Abstraction often involves analysing what is relevant to a given scenario
and simplifying a problem based on this information. This is representational abstraction.
Very large, complex problems make use of multiple levels of abstraction, where each level
performs a different role. The highest levels of abstraction are closest to the user and are
usually responsible for providing a user interface while the lowest levels interact with
machine components.
At its core, abstraction allows non-experts to make use of a range of systems or models by
hiding information that is too complex or irrelevant to the system’s purpose. Abstraction
enables for more efficient software design as programmers can focus on core elements
rather than unnecessary details. This reduces the time spent on the project and prevents
the program from getting unnecessarily large.
www.pmt.education
Programming languages can be separated out into a spectrum of high and low-level
languages. Low-level languages such as assembly code and machine code directly
interact with computer systems but are more difficult to write. Programming using machine
code requires understanding binary. Assembly code requires programmers to know the
mnemonics associated with the instruction set specific to each processor. High-level
languages provide an abstraction for the machine code that is in fact executed when a
program is run. This makes developing programs easier, as syntax in high-level languages
parallels natural language and is considerably easier to
learn and use. This has also made coding accessible to
non-specialists.
www.pmt.education
Devise an abstract model for a variety of situations
Can the problem be solved computationally? What are the key features of
the problem?
What sort of format does the model need to be displayed in? Consider
factors such as convenience, affordability and ease of access.
How many people will be using the model? What level of expertise do they
have in the subject/ discipline associated with the problem?
- Which parts of the problem are relevant based on the target audience and model’s
purpose?
Remove sections that are not relevant to the problem that needs solving.
Remove details that will confuse the audience.
www.pmt.education