Thinking Abstractly Flashcards
1
Q
What is Abstraction
A
The process of removing excessive details to arrive at a representation of a problem that consists of only the key features
2
Q
What are the Different Types of Abstraction
A
- Representational Abstraction - analysing what is relevant to a given scenario and simplifying a problem based on this information
- Abstraction by Generalisation - involves grouping together similarities within a problem to identify what kind of problem it is
- Data/Proecdural abstraction - details about how data is being stored are hidden. As a result, programmers can make use of abstract data structures such as stacks and queues without concerning themselves with how these structures are implemented
3
Q
Describe the need for abstraction
A
- Non - Experts - allows non-experts to make use of a range of systems by hiding information that is too complex or irrelevant to the system’s purpose
- Key Elememts - more efficient for designing as programmers can focus on key elements rather than worrying about unnecessary details
- Time and Effort - reduces the time needed to be spent on the project, prevents the program from getting unnecessarily large
4
Q
Describe how Layers of Abstraction are used in Programming Languages
A
- Programming languages can be written in high and low-level languages
- Low-level languages are more difficult to write since it requires having an understanding of the functions specific binary codes perform
- High-level languages provide an abstraction for the machine code meaking it easier to write
- This has also made coding accessible to non-specialists
5
Q
Describe how the TCP/IP Layer uses Abstraction
A
- The TCP/IP model is an abstraction for how networks function
- It is separated into four layer and each layer deals with a different part of the communication process, and separating these stages out makes them simpler to understand
- Each layer does not need to know how other layers work
- However, it is also important to ensure compatibility between these layers so standards must be agreed in advance
6
Q
Describe how Object-Oriented Programming is an example of Abstraction
A
- OOP uses objects, which are also 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