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 2 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 to applications/examples of layers of abstraction
- Networking (TCP/IP layer)
- Programming languages
State 2 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
- Attributed 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