Back to marketplace

2.1 Elements of computational thinking

No description yet. This curated deck is ready for daily study.

Total cards: 24•Content version: v4•Public deck•Updated: 8/1/2026

Card preview (24)

#1
Front (Question)

What is abstraction?

Back (Answer)

removing information that is too complex or irrelevant to the system’s purpose (unnecessary detail)

#2
Front (Question)

Why is abstraction needed? (3)

Back (Answer)

-enables for efficient software design as programmers can focus on core features instead of unnecessary details -reduces time spent on a project -saves memory space

#3
Front (Question)

What is an example of abstraction?

Back (Answer)

TCP/IP model -abstraction of how networks function -separated into four simple layers -each layer deals with a different part of the communication process -doesn’t need to know how other layers function

#4
Front (Question)

What are the different ways projects can be abstracted?

Back (Answer)

-representational -data -layered -generalisation -procedural

#5
Front (Question)

Explain representational abstraction

Back (Answer)

-removing unnecessary 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

#6
Front (Question)

Explain data abstraction

Back (Answer)

-details about how data is being stored are hidden -programmers can use data structures without knowing how they are implemented

#7
Front (Question)

Explain layered abstraction. Give an example of this

Back (Answer)

-large, complex problems are split into layers of abstraction -each layer has a different role, with the highest layers being closest to the user -these are usually responsible for providing a user interface -the lowest levels perform tasks such as interacting with machine components example of this is the TCP/IP model

#8
Front (Question)

Explain abstraction by generalisation

Back (Answer)

-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

#9
Front (Question)

Explain procedural abstraction

Back (Answer)

-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

#10
Front (Question)

What should we think about when needing to devise an abstract model for scenarios? (4)

Back (Answer)

-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?

#11
Front (Question)

Why is thinking ahead useful?

Back (Answer)

makes development easy and programs can be built to be intuitive

#12
Front (Question)

What are inputs?

Back (Answer)

data required to solve the problem (data entered into the system by the user)

#13
Front (Question)

What are outputs?

Back (Answer)

results passed back to the user

#14
Front (Question)

What are some ways of thinking ahead? Why are these useful? (3)

Back (Answer)

-creating preconditions (requirements which must be met before a program can be executed) reduces length and complexity of programs saves time spent on debugging and maintenance -creating reusable program components (using libraries or subroutines) saves time increases development efficiency reliable -caching (storing instructions/data in cache memory after they’ve been used, as they could be used again) saves time instead of going to secondary storage frees up bandwidth less time to fetch

#15
Front (Question)

What do we mean by thinking procedurally?

Back (Answer)

breaking down a complex problem then thinking logically and sequentially to find a solution

#16
Front (Question)

Explain the first stage of thinking procedurally. What are some positives to doing this?

Back (Answer)

problem decomposition breaking a large complex problem into smaller subproblems which can be solved more easily -easier to manage -subproblems can be divided within a team -subproblems can be tested separately, so are self-contained

#17
Front (Question)

What is the second stage of thinking procedurally? What do we need to consider?

Back (Answer)

considering each component and using them to build up a solution -can this be implemented as a function or a procedure? -what inputs are required? -what output does the subroutine need to produce?

#18
Front (Question)

What do we mean by thinking logically?

Back (Answer)

analysing a situation or problem using reason and coming up with potential solutions

#19
Front (Question)

What are some questions needed to be evaluated when thinking logically?

Back (Answer)

-what is most effective? -what is most convenient? -is this option reasonable?

#20
Front (Question)

How can we think logically? (2)

Back (Answer)

use procedural thinking using flowcharts to find different outcomes of a problem

#21
Front (Question)

What do we mean by thinking concurrently?

Back (Answer)

the process of completing more than one task at a given time -involves giving time ‘slices’ to different tasks

#22
Front (Question)

Compare concurrent and parallel processing

Back (Answer)

concurrent- each task is given a slice of processor time to make it appear as if tasks are being completed simultaneously parallel- when multiple processors are used to complete more than one task simultaneously

#23
Front (Question)

Why is concurrent processing useful?

Back (Answer)

-the number of tasks completed in a given time is increased -less time is wasted waiting for an input or user interaction (other tasks can be completed in this time)

#24
Front (Question)

What are some drawbacks to concurrent processing?

Back (Answer)

-can take longer to complete when large numbers of users/tasks involved -an overhead in coordinating and switching between processes (reduces program throughput) -not all tasks are suited to being broken up and performed concurrently