2.1.1 Thinking Abstractly Flashcards
What is representational abstraction?
Removing excessive details to represent a problem using only key features
What is data abstraction?
Details about how data is being stored is hidden
What is meant by layers of abstraction?
Large complex problems are split into layers
Each layer has a different role
What is the role of higher layers of abstraction?
Providing a user interface
What is the role of lower layers of abstraction?
Tasks e.g. interacting with machine components
What is abstraction by generalisation?
Grouping together similarities within a problem to identify the type of problem
State 2 benefits of abstraction by generalisation.
Allows problems to be categorised
A common solution can be used
What is procedural abstraction?
Allows programmers to utilise functions without knowledge of implementation
Give 2 uses of procedural abstraction.
Decomposition
Manipulating data structures
Why is abstraction needed?
Allows non-experts to use a range of systems/models
Enables efficient software design
Programming languages use layers of abstraction
TCP/IP model uses abstraction
How does abstraction allow for the non-expert use of systems/models?
Hides information too complex or irrelevant to system’s purpose
How does abstraction allow for efficient software design?
Programmers can focus on core elements rather than unnecessary details
State the two benefits of efficient software design.
Reduces time spent on a project
Prevents program from becoming unnecessarily large
Why is abstraction used in programming languages?
Makes coding accessible to non-specialists
How does the TCP/IP model use abstraction?
Each layer has a different role
Layers don’t require knowledge of how others work