Thinking Abstractly Flashcards

2.1.1. Thinking Abstractly

1
Q

What is representational abstraction?

A

Removing excessive details to represent a problem using only the key features

Must analyse what is relevant to a scenario and simplify a problem based on this

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is data abstraction?

A

Details about how data is being stored are hidden, allowing programmers to use data structures without knowing their implementation

Focuses on what data is available rather than how it is stored

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are layers of abstraction?

A

Large, complex problems are split into layers, each with a different role

Highest layers are closest to the user, providing user interfaces; lowest levels interact with machine components

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is abstraction by generalisation?

A

Grouping together similarities within a problem to identify its type

Allows categorisation of problems to use common solutions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is procedural abstraction?

A

Allows programmers to utilize functions without knowing their implementation

Used in decomposition and manipulating data structures; models what a subroutine does without considering how

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Why is abstraction needed?

A

Allows non-experts to use systems by hiding complex information

Enables efficient software design, reducing time spent and preventing unnecessary program size

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the characteristics of low-level languages?

A

Directly interact with computers but are difficult to write

They require detailed knowledge of hardware

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are high-level languages?

A

Abstract machine code with easy-to-use syntax similar to natural language

Makes coding easier to learn and accessible to non-specialists

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the TCP/IP model?

A

An abstraction for how networks function, separated into four layers: application, transport, internet, and link

Each layer deals with different parts of the communication process and operates independently

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the difference between abstraction and reality?

A

Abstraction is a simplified representation of reality

Entities are represented as computational structures like tables and databases

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How are objects in object-oriented programming an abstraction?

A

They represent real-world entities, with attributes for characteristics and methods for actions

This allows for easier modeling of real-world processes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What should be considered when devising an abstract model?

A

What is the problem to be solved, how will the model be used, who will use it, and which parts of the problem are relevant

These considerations help tailor the model to its purpose and audience

How well did you know this?
1
Not at all
2
3
4
5
Perfectly