Theory Of Computation Flashcards

1
Q

What is an algorithm?

A

A sequence of steps to complete a known task and that always terminates

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

What are some features of a good algorithm?

A
  • Allow for invalid inputs
  • Be efficient, involving as few steps as possible
  • Be understandable by others
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the constructs of an algorithm?

A
  • Sequence
  • Assignment
  • Selection
  • Iteration
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a “dry-run”

A

Testing an algorithm using a trace table

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

What can make an algorithm preferable?

A
  • More efficient
  • More robust and works in more cases
  • Better at handling unexpected input
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some techniques for interpreting algorithms?

A
  • Reading comments that explain how the code works
  • Identifiers can indicate a variable’s purpose or subroutine’s function
  • “Dry-run” the algorithm to see how variables change
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is computational thinking?

A

Approach to solving complex problems through the application of abstraction, decomposition, pattern recognition and algorithmic thinking.

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

What is abstraction?

A

Removal of detail to focus on what is necessary to solve the problem

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

What is pattern recognition?

A

Solving problems by recognising similarities with previously solved problems and applying a similar solution

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

What is algorithmic thinking?

A

Creating a solution to a problem using algorithmic constructs

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

What is representational abstraction?

A

A representation arrived at by removing unnecessary details

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 by common characteristics to arrive at a hierarchical relationship of the “is a kind” type

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

What is procedural abstraction?

A

Abstracting away the actual values used in a computation to leave a computational method: a procedure.

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

What’s is functional abstraction?

A

Build upon procedural abstraction, abstracting the actual method computation involved. The resulting function focuses on the inputs and outputs of the function only.

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

What is data abstraction?

A

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

17
Q

What is problem abstraction (reduction)?

A

The removal of detail from a problem until it is represented in a way that is possible to solve because the problem. Reduces to one that has already been solved

18
Q

What are the two main approaches to abstraction?

A
  • Representational abstraction
  • Abstraction by generalisation
19
Q

What are the different form of abstraction?

A
  • Procedural abstraction
  • Functional abstraction
  • Data abstraction
  • Problem abstraction
20
Q

What is procedural decomposition?

A
  • Breaking down a complex problems through into small sub-problems
  • Each sub-problem accomplishes a specific task that is easier to solve
  • These can be further subdivided until a problem is solvable
21
Q

What is compositional abstraction?

A

Formed by combing the procedures that together will form compound procedures to solve larger/ more complex problems

22
Q

What is compound data?

A

Building data abstraction by combining data objects

23
Q

How is automation achieved?

A
  • Designing and writing algorithms
  • Implementing algorithms in program code, utilising the data structures that represent the data that has been modelled
  • Executing the code to generate a solution to an agreed degree of accuracy