2.2.2 Computational Methods Flashcards

1
Q

What is a computable problem?

A

A problem that can be solved with an algorithm.

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

What are three limiting factors to computable problems?

A

Processing power, speed and memory.

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

What is problem decomposition?

A

Breaking a clearly defined problem into smaller subproblems, until each subproblem can be represented as a self contained subroutine.

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

How does decomposition save time?

A

Programmers may find certain sections of the program that can be implemented using precoded modules or libraries.

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

How does decomposition make a project easier to manage?

A

Different developer teams can be assigned separate sections of the code according to their specialisms. These can be individually designed, developed and tested before being combined to produce a working piece of software at the end.

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

How does decomposition make debugging simpler and less time consuming?

A

It is easier to identify and fix errors in individual modules, compared to an entire application.

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

What is divide and conquer?

A

A problem solving technique.

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

Describe the three stages of Divide and Conquer.

A
  • Divide: The size of the problem is halved with every iteration.
  • Conquer: Each individual problem is solved, often recursively.
  • Merge: The solutions to the sub problems are combined to form the final solution to the problem.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What three algorithms use the divide and conquer approach

A

Binary Search
Quick Sort
Merge Sort

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

Advantage of using Divide and Conquer

A

The size of the problem halves with each iteration, which greatly simplfies very complex problems. This means that as the size of the problem grows, the time taken to solve it will not grow as significantly.

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

Disadvantage of using Divide and Conquer

A
  • Possiblity of stack overflow.
  • Large programs are very difficult to trace
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Representational abstraction

A

Excessive details are removed to simplify a problem

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

Benefit of abstraction

A

Allows programmers to focus on the core aspects required of the solution, rather than worrying about unnecessary details.

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

How can using levels of abstraction benefit a large complex project?

A

The large project can be split into smaller component parts.

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

Abstraction by generalisation

A

Groups together different sections of the problem with similar underlying functionality. This allows for segments to be coded together and reused, so it saves time.

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

What is backtracking?

A

A problem solving technique implemented using algorithms, often recursively.

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

How does backtracking work?

A
  • By methodically visiting each path and building a solution based on the paths found to be correct.
  • If a path is found to be invalid at any point, the algorithm backtracks to the previous stage and visits an alternate path.
18
Q

Give an example of back tracking

A

Depth first traversals

19
Q

What is data mining?

A

A technique used to identify patterns or outliers in large sets of data (big data).

20
Q

What is big data?

A

Large sets of data typically collected from a variety of sources.

21
Q

Data mining is used in what kind of software?

A

Software designed to spot trends or identify correlations between data which are not immediately obvious.

22
Q

What can insights from data mining be used for?

A

Making predictions about the future based on previous trends.

23
Q

What kinds of decisions do companies use data mining to assist?

A

Business and marketing decisions

24
Q

Consider a supermarket. What kind of information would data mining reveal?

A

Which products are bought at certain points in the year

25
Q

How might a supermarket use data mining in combination with the personal data of their customers?

A

To reveal insights about people’s shopping habits and preferences based on their personal info, which can be used to inform marketing techniques.

26
Q

Data mining often involves the handling of personal data. What compulsory action must be taken as a result?

A

The personal data must be dealt with in accordance with data protection legislation.

27
Q

What are heuristics?

A

A non optimal, “rule of thumb” approach to problem solving.

28
Q

What are heuristics used to find?

A

An approximate solution to a problem when the standard solution is unreasonably time consuming or resource intensive to find.

29
Q

Applications of heuristics

A
  • A* Algorithm
  • Machine learning
  • Intractable problems (problems where solution takes unreasonably long to be found)
30
Q

What is performance modelling?

A

Performing mathematical analysis to assess efficiency.

31
Q

How does performance modelling eliminate the need for true performance testing?

A

It provides mathematical methods to test a variety of loads on different operating systems.

32
Q

Example where performance modelling is used.

A

Testing safety critical computer systems, such as those used on an airplane, where it is not safe to do a real trial run before the system can be implemented.

33
Q

What three pieces of information does performance modelling provide companies with?

A
  • The capabilities of a system
  • How a system copes in diffferent environments
  • Whether or not it is safe to implement
34
Q

How does pipelining work?

A

Modules are divided into individual tasks, with different tasks being developed in parallel.

35
Q

How does pipelining resemble a production line?

A

The output of one process in pipelining becomes the input of another.

36
Q

Benefit of pipelining

A

Allows projects to be delivered faster

37
Q

What is visualization?

A

Presenting data in a way thats easier to understand. This makes it possible to identify trends that were not obvious.

38
Q

How may visualisation be achieved?

A

By representing data as graphs, trees, charts or tables, depending on data type.

39
Q

Why do businesses use visualization?

A

To pick up on patterns which can be used to inform business decisions.

40
Q

Give an example of data that visualization can be used on.

A

Statistical data.

41
Q

What is problem recognition?

A

Identifying what the problem is