Section 10 - Computational thinking Flashcards

(10 cards)

1
Q

2.1.1 Thinking abstractly

Explain what is ment by 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

2.1.1 Thinking abstractly

Explain what is ment by data abstraction.

A

● Details about how data is being stored are hidden.

● Programmers can use data structures without knowing how they are implemented.

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

2.1.1 Thinking abstractly

Explain what abstraction by generalisation is.

A

Grouping together similarities within a problem to identify what kind of problem

● Allows problems to be categorised as being of a particular type

● A common solution can be used to solve these problems

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

2.1.1 Thinking abstractly

Explain what procedural abstraction is.

A

● Allows programmers to utilise functions without knowing how they are implemented

● Used in decomposition and manipulating data structures

● Models what a subroutine does without considering how, as once a subroutine has been written, it can be reused as a black-box

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

2.1.1 Thinking abstractly

What is the need for abstraction?
( generally )

A

Abstraction allows non-experts to use of a range of systems or models by hiding information that is too complex or irrelevant to the system’s purpose

● Enables for efficient software design as programmers can focus on core elements
rather than unnecessary details
- Reduces the time spent on a project
- Prevents a program from getting unnecessarily large.

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

2.1.1 Thinking abstractly

Describe how abstraction is used within programming languages

A
  • Low-level languages directly interacts with computers but are difficult to write
  • High-level languages abstract the machine code that is executed when a program is run by providing easy-to-use syntax similar to natural language
  • Makes developing programs easier
  • High-level languages are easier to learn and use than assembly language or machine code
  • Makes coding accessible to non-specialists
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

2.1.1 Thinking abstractly

Explain how the TCP/IP model is a form of abstraction.

A
  • The TCP/IP model is an abstraction for how networks function, separated into four layers: application, transport, internet and link
  • Each layer deals with a different part of the communication process
  • Each layer does not need to know how other layers function
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

2.1.1 Thinking abstractly

Explain the difference between abstraction and reality

A

● Abstraction is a simplified representation of reality

● Entities are represented as computational structures eg. tables and databases

● Real-world values can be stored as variables and constants

● Objects in object-oriented programming are an abstraction for real-world entities

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

2.1.1 Thinking abstractly

What are some questions to consider when devising an abstract model.

A
  • What is the problem that needs to be solved by the model?
  • How will the model be used?
  • Who will the model be used by?
  • Which parts of the problem are relevant based on the target audience and purpose of the model?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

2.1.1 Thinking ahead

Outline the benefits and drawbacks of caching

A

Benefits:
- Gives fast access to pages that have been recently looked up
- Saves having to download pages again, using up bandwith unnecessarily

Drawbacks:
- The cache may store an outdated version of data, leading to inconsistencies if the original source
- If the required data is not in the cache, the system must search for it in slower memory (e.g., RAM or disk), which can lead to slower performance than not using a cache at all.

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