Computational Methods Flashcards

1
Q

Computable

A

Computable if we can come up with an algorithm which will solve the problem in a finite number of steps

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

intractable problem

A

a problem that cannot be completely solved e.g. travelling salesperson problem

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

problem decomposition

A

The process of taking a big problem and breaking it down into smaller problems until you have fully explored each of the problems. (Each smaller problem = one module of code)

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

Abstraction

A

The process of deciding which details are needed to solve the problem and removing the unnecessary details to help solve the problem more easily.

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

Divide and Conquer

A

reduces the size of the problem over successive iterations: look at a set of rules, discard data then repeat with left over information.

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

Performance modelling

A

the process of carrying out mathematical approximations of how well models perform.

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

benefits of performance modelling:

A
  • tests a program before its made, helps prevent on air failure
  • saves money (the complex calculations are not actually carried out
  • helps find unexpected errors
  • system is more easily analysed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pipelining

A

The process of taking a task and splitting it into smaller tasks then overlapping the processing to improve the overall performance

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

Advantages of pipelining

A
  • improves performance, increases throughput

-

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

disadvantages of piplining

A
  • doesn’t always improve performance
  • physical design and code is more complex
  • if a pipeline has to be flushed it wastes time
  • not all instructions can take advantage of pipelines
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

drawbacks of performance modelling

A
  • can be expensive to build a model

- sometimes it is difficult to interpret the results

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

advantages of abstraction

A
  • simplifies the problem (it can process faster/ has better memory requirements)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

disadvantages of abstraction

A
  • may remove too much detail (i.e. the program may be too simple and not reach the users needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

disadvantages of divide and conquer

A
  • may not be complex enough/ may not be able to be split
  • can result in full stacks
  • may end up duplicating subproblems
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

advantages of modules

A
  • Work can divided between a team, saves time as work takes place in parallel
  • each team must only know what values to go into their subroutine and their expected functionality
  • breaks problem down, easier to understand/test/debug/read
  • Modules can be given to teams with specific expertise
  • each subroutine can be tested individually before its combined to the main program
  • code can be reused
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

disadvantages of modules

A
  • it can be hard to join all the modules together
  • extra memory space and time for execution required
  • testing and debugging can be more time consuming
17
Q

Visualisation

A

The ability to picture a problem and its solution in a visual way to make it easier to understand

18
Q

visualisation advantages

A
  • helps understanding
19
Q

visualisation disadvantages

A
  • time consuming
20
Q

backtracking

A

the process of incrementally building up towards a solution, abandoning partial success then going back and trying again a different way.

21
Q

concurrent programming

A

where one computation occurs simultaneously with another and doesn’t wait for the other one before advancing.

22
Q

advantages of backtracking

A
  • sometimes it is the best option to solve a problem

- simple to implement

23
Q

disadvantages of backtracking

A
  • not efficient for solving a strategic problem
  • runtime is slow
  • need alot of memory space
  • to solve larger problems other algorithms may be required
24
Q

Heuristic

A

Making use of experience to find an acceptable solution (not always the optimal solution).
e.g. rules of thumb, educated guessed, common sense. Often derived from a previous experience with a similar problem

25
Q

advantages of concurrent programming

A
  • increased program throughput

- processor time not wasted

26
Q

disadvantages of concurrent programming

A
  • potential slow down if many users request a similar action

- some problems are not paralisable

27
Q

Data Mining advantages

A
  • can help businesses (target ads, look at trends, predict demand etc)
  • analyse records to build patterns and stop criminal activities
28
Q

Data mining disadvantages

A
  • privacy issues
  • security issues
  • misuse of information
  • incorrect analysis can lead to bad effects