Unit 10 - Computational Thinking Flashcards
What is abstraction?
The process of removing excessive details to arrive at a representation of a problem that consists of only the key features.
What is representational abstraction?
Analysing what is relevant to a given scenario and simplifying a problem based on the information.
What is abstraction by generalisation?
Grouping together similarities within a problem to identify what kind of problem it is. This allows certain problems to be categorised as being of a particular type and solved with a common solution.
What is the purpose of data abstraction?
Details about how data is being stored are hidden, so programmers can make use of abstract data structures such as stacks and queues without concerning
themselves with how these structures are implemented.
What is procedural abstraction?
Programmers performing functions without having any knowledge about the code used to implement this functionality.
Explain the benefit of abstraction.
Abstraction enables for more efficient design during software development as
programmers can focus on elements that need to be built into the software rather than worrying about unnecessary details.
This then reduces the time needed to be spent on the project and prevents the program from getting unnecessarily large.
Give an example in which abstraction is used.
The TCP/IP model is an abstraction for how networks function, separated into four layers of abstraction: application, transport, internet and link. Each layer deals with a different part of the communication process, and separating these stages out makes them simpler to understand, and each layer does not need to know how other layers work.