2.1 Computational thinking Flashcards

1
Q

Abstraction

A

Simplifying a problem by only taking into consideration the necessary details required to obtain a solution leaving a representation without any unecessary details

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

Data abstraction

A

details about how data is being stored are hidden

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

Graph theory

A

A branch of paths that can be used to abstractly represent problems using a collection of nodes connected by edges

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

Caching

A

The temporary storage of data by the system in cache or memory for the benefit of faster retrieval if it is needed again in future

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

Inputs

A

Any information relevant to the problem that is required by the system for processing

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

Outputs

A

The result returned by a system for a given input after running the entire process or part of a process

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

Preconditions

A

A perquisite or state of a system and its surroundings required to run a use case and return a valid solution

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

Reusable program components

A

Components that have already been written, debugged and tested that can be transplanted into new systems to save development time in project completion

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

Procedural abstraction

A

Achieving a task by relying on a procedure of sequential steps

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

Components of a problem

A

The smaller, simpler series of tasks and sub-procedures a problem can be broken down into to be completed modularly

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

Flowcharts

A

A representation of the flow of a program that includes all the points where a decision needs to be taken in order to obtain a solution

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

Logical conditions

A

Conditions which may depend on one or more variables used to determine the next step whenever a system has to make a decision. They are typically implemented using control structures such as sequences selections and iterations

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

Concurrent processing

A

Processing where the system appears to perform multiple tasks simultaneously

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

What is abstraction by generalisation

A

grouping together similarities within a problem to
identify what kind of problem it is where 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
15
Q

How does procedural abstraction work

A

It models what a subroutine does without considering how this is done.
Once a procedure has been coded, it can be reused as a black-box

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

What do large problems make use of in relation to abstraction

A

multiple levels of abstraction, where each level
performs a different role

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

What are the highest levels of abstraction when multiple are used

A

closest to the user and are
usually responsible for providing an interface for the user to interact with hardware

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

What are the hlowest levels of abstraction when multiple are used

A

e lowest levels of abstraction are responsible for actually performing these
tasks through the execution of machine code.

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

TCP ip model abstraction

A

abstraction for how networks function,
separated into four layers of abstraction

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

Do each layer in the TCP IP model need to know how the others work

A

No

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

Outgoing and ingoing TCP IP model

A

Outgoing go down from application and incoming goes up from link

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

OOP abstraction

A

Object-oriented programming makes use of objects, which
are also an abstraction for real-world entities

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

What does abstraction consider in OOP

A

abstraction considers the
functionality, interface and properties of entities. Attributes
are an abstraction for the characteristics of an object while
methods are an abstraction for the actions a real-world object is able to perform

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

What is the purpose of thinking ahead?

A

To make programs easy and intuitive for users to use

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Inputs?
Any data that is required to solve a problem, usually entered into the system by the user
26
Outputs?
The results that are passed back once the inputs have been processed and the problem solved
27
What considerations do programmers need to make about inputs and outputs when thinking ahead?
Method of input/output (device used) Data structures used Data types used Order of data
28
You must be able to extract inputs and outputs from a real world scenario... Book reservation system, e.g. at a library?
Inputs - Book details: name, author, ISBN, Borrower details: name, library card number, Collection point Outputs - Expected waiting time, Confirmation, Availability at other libraries
29
What are preconditions?
Requirements which must be met before a program can be executed
30
Where can preconditions be defined?
Within the code or within documentation
31
Where are preconditions required?
Stack functions - check stack isn't empty when popping an element from a stack, or is full when pushing an element onto the stack Factorial function - the number passed to the function cannot be negative
32
What are the advantages of including preconditions within the documentation accompanying a subroutine?
Reduces the length of the program Reduces the complexity of the program Saves time needed to debug and maintain a longer program Makes subroutine more reusable
33
What is caching?
The process of storing instructions or values in cache memory after they have been used, as they may be used again
34
How is caching used in storing web pages?
Web pages that a user frequently accesses are cached, so the next time one of these pages is accessed, content can be loaded without any delay
35
What are the advantages of caching web pages?
Content can be loaded without delay images and text do not have to be downloaded again multiple times Frees bandwidth for other tasks on a network Less time is spent wasting
36
What is the name given to the technique in which algorithms are used to predict which instructions are likely to soon be used?
Prefetching
37
What are the limitations of caching?
Accuracy of the algorithm used Effectiveness of algorithm in managing the cache Size of the cache
38
What are the advantages of reusable components?
More reliable than new components, as they have already been tested As developing from scratch is not required, this saves time, money and resources
39
What are some examples of reusable components?
Abstract data structures e.g. queues and stacks Classes Subroutine
40
What are the limitations of using reusable components?
Compatibility issues with the rest of the software Causing to be more costly and time-consuming then developing them in-house
41
What is the first stage of thinking procedurally?
Taking the problem defined by the user and breaking it down into its constituent parts
42
What is the purpose of problem decomposition?
To make complex problems easier to solve and more manageable by allowing tasks to be divided between a group of people according to individual skill sets
43
What is another name given to top-down design?
Stepwise Refinement
44
What is the purpose of top-down design?
Continually break problems down into subproblems until each subproblem can be represented as a single task and ideally a self-contained subroutine
45
What are the benefits of using a top-down design?
Problems can be solved and modules developed by different people Tasks can be tested separately, modules are self-contained
46
What sort of problems is top-down design suited to?
Large, complex problems
47
What is the second stage of thinking procedurally in software development?
Identifying components of a solution
48
How can the lowest level subproblems in top-down design in code?
As self-contained modules or subroutines
49
What do software developers need to consider when recombing components of a solution?
The order in which subroutines are executed, and how they interact with each other, based on their role in solving the problem
50
What must a software developer do before designing a subroutine to solve a particular problem?
See whether it is possible for an already existing subroutine or module to be used
51
What are the advantages of utilising reusable components?
More reliable than newly-coded components, as they have already been tested This saves time, money and resources
52
What is a decision?
A result reached after consideration.
53
When are decisions made?
Whenever you have a choice to make
54
What is a decision shape in a flowchart?
A diamond
55
In a flowchart how many options can you pick from a decision?
2 different options - yes or no / true or false
56
How do you make effective decisions?
By evaluating the importance of different factors and selecting options which satisfy the needs of the task the most appropriately
57
Does the result of a decision affect the flow of the program?
The program will follow a different route depending on the decision made by the user
58
What is concurrent thinking?
It is completing more than one task at any given time
59
Are concurrent processing and concurrent thinking the same thing?
No, one uses computer processors, one uses the human brain
60
What is parallel processing?
Completing multiple tasks simultaneously at any given time
61
What is concurrent processing?
Giving a slice of processor time to tasks to give the illusion of parallel processing
62
What are the benefits of concurrent processing?
More tasks can be completed in a given time Other tasks can be completed while waiting for an input/user interaction
63
What are the drawbacks of concurrent processing?
If lots of users are requesting for tasks to be completed, it takes longer for everyone to complete their task
64
What is representational abstraction
analysing what is relevant to a given scenario and simplifying a problem based on this information
65
What is categorisation generilsation
Another form of abstraction involves grouping together similarities within a problem to identify what kind of problem it is
66
What does abstraction by generalisation allow
certain problems to be categorised as being of a particular type. Thus a common solution can be used to solve these problems