2.1.1 Thinking Abstractly Flashcards
What is representational abstraction?
A technique in which excessive details are removed to arrive at a representation of a problem that consists of only the key features.
Which form of abstraction involves grouping together similarities within a problem to identify what kind of problem it is?
Abstraction by generalisation.
What is meant by data abstraction?
A form of abstraction in which details about how data is being stored are hidden.
What kind of problems make use of multiple levels of abstraction?
Large, complex problems.
How does abstraction allow non-experts to make use of a system?
Hides complex and irrelevant information in abstract models.
State some advantages of using abstraction in software development.
- Easier for programmers to focus on core elements,
- Reduces the time needed to be spent on the project,
- Prevents program from getting unnecessarily large.
Give two applications of layers of abstraction
- Networking (TCP/IP layer),
- Programming languages.
State some advantages of using abstraction in programming languages
- Easier to remember syntax in high-level languages as it is closer to natural language,
- Coding becomes accessible to beginners.
How does object-oriented programming use abstraction?
Objects are an abstraction for real-world entities.
Attributes are an abstraction for the characteristics of an object.
Methods are an abstraction for the actions a real-world object is able to perform.
What is the difference between abstraction and reality?
Abstraction is a simplified representation of reality.