Theory of Computation Flashcards

1
Q

What is an algorithm?

A

A sequence of steps that can be followed to complete a task that always terminates.

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

What are the 4 constructs of algorithms?

A

1) Iteration
2) Selection
3) Variable assignment
4) Sequence

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

What must we consider when evaluating different algorithms?

A

Efficiency, how many cases does it work, and error handling

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

What are the 4 main techniques of computational thinking?

A

1) Abstraction
2) Decomposition
3) Pattern recognition
4) Algorithmic thinking

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

What is abstraction?

A

Removal of detail from a a problem to focus on what is necessary to solve

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

What is decomposition?

A

Breaking a problem down into smaller problems, each of which is easier to solve

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

What is pattern recognition?

A

Comparing a problem to similar problems that are already solved and applying the same or similar solution

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

What is algorithmic thinking?

A

Writing a solution to a problem using algorithmic constructs (iteration, sequence, assignment, selection)

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

What are the different forms of abstraction?

A

1) Procedural abstraction
2) Functional abstraction
3) Data abstraction
4) Problem abstraction / reduction

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

What is representational abstraction?

A

The representation arrived at by removing unnecessary details from the problem.

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

What is an example of representational abstraction?

A

Maps

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

What is information hiding?

A

The process of hiding all details of an object that do not contribute to its essential characteristics

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

What is abstraction by generalisation?

A

Grouping common characteristics to arrive at a hierarchical relationship of the inheritance type

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

What is procedural abstraction?

A

Abstracting values used in a computation to leave a single computational method (procedure)

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

What is functional abstraction?

A

Abstracting the method of computation and the resultant function only focuses on inputs and outputs (functions)

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

What is data abstraction?

A

Isolating how a compound data structure is used from how it is constructed

17
Q

What is problem abstraction (reduction)?

A

Removal of detail until it is possible to solve because it reduces to one that has already been solved

18
Q

What is decomposition?

A

The process of breaking down a complex problem into smaller sub-problems. Each sub-problem accomplishes a specific task that is easier to solve. These can be further subdivided until a problem is solvable.

19
Q

What is composition?

A

Form of abstraction which combines procedures to form compound procedures to solve a complex problem

20
Q

What is automation?

A

The process of using abstractions of real world phenomena (models) to solve problems

21
Q

How is automation done?

A

Create algorithms, implement in code, making models in data structures and executing code on data structures