Concepts Flashcards

1
Q

What is abstraction?

A

Removing unnecessary detail and including only the relevant detail

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

Why do we need abstraction?

A

Reduce complexity of systems for users
Hide how things actually work
Produce suitable user interfaces

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

Give an example of abstraction vs reality

A

e.g. nodes and weighted edges of a graph rather than a map with locations, flowchart rather than program code

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

What are reusable program components?

A

Subroutines
Libraries
Components e.g. text editing panel in Word, PP, etc
External reuse e.g. log in with Google, APIs

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

What are the benefits of reusable program components?

A

shortens development time
saves systems resources
lowers development costs
reduces redundant code

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

What are the benefits of libraries?

A

pre-compiled => error-free
different source language?
use others’ expertise
more standardised approach
projects require fewer developers

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

What is caching?

A

storing instructions retrieved from secondary storage in main memory in case they are needed again before the program ends
prefetching = algorithms predict which instructions are likely to soon be fetched, load + store in cache
used with frequently visited web pages to reduce number of requests + free up bandwidth

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

What are the benefits of caching?

A

faster retrieval times, less time is spent waiting for algorithms to be fetched

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

What are the drawbacks of caching?

A

predictive logic can be complicated to implement
wrong data often fetched and must be flushed
maintaining correct sequence of instructions or data can be problematic

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

What is concurrency?

A

an application making progress on more than one task at the same time (but not necessarily simultaneously, could use round robin)

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

What is parallel processing?

A

code is executed at the same time across multiple cores, specialised version of concurrency (multiple parts of a task or multiple tasks)

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

Can a single core CPU perform parallel processing?

A

No
Can perform concurrent processing, but not parallel processing

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

What are the benefits of concurrent processing?

A

reactive programming
availability of services
parallelism
controllability
number of tasks in given time is increased
time processor is waiting is reduced

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

What are the disadvantages of concurrent processing?

A

safety
liveness
resource consumption

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

What are the key features of an IDE?

A

code editors
->syntax highlighting, autocomplete, automatic indentation
error diagnostics
runtime environments
->easily run code during development
translators
auto-documentation
->tracks variables and comments, produce documentation to aid maintenance and debugging

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

TOPIC 24 IS NEXT

A