2.2.2 Computational Methods Flashcards

1
Q

Computable Problems

A

Computable Problems : A problem is computable if it can be solved with an algorithm within finite number of clearly defined steps.

Features that make solvable :
- Can be solved in realistic, finite length of time
- Involves calculations
- Has inputs and outputs

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

Problem Recognition

A

Problem Recognition : Identify there is a problem to be solved and if the problem can be solved with computational methods.

  • Consider and identify Inputs and Outputs.
  • Consider strengths and weaknesses of current solution.
  • Identify what challenges there may be and what additional information is required before starting to code the solution
  • identification of the key features for programmers to focus on
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Problem Decomposition Advantages

A

Advantages :.
- Sub-routines can be reused - stored in library for other program or called multiple times in same program - saves time to reprogram.

  • Sub-problems split between programmers - faster development as worked on concurrently and can specialize in their area.
  • Improved Debugging and maintainability - Easier to find errors in smaller self-contained modules and then can combine once tested modules individually.
  • Smaller sub problems easier to solve as easier to read and understand - increased efficiency.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Problem Decomposition

A

Decomposition : Identify main problem and continually break down into component sub-problems until each one identifies identifiable task
- Sub-problems can be programmed as separate self-contained subroutines.
- Sub-problems can be split between programmers and developed concurrently.

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

Divide and Conquer

A

Divide and Conquer : Splits big problem into smaller parts,
- reducing size each iteration
- Solve smaller sub-problems
- then combine to provide solution once each solved.
- Often uses recursion

E.g. In Quick sort :
- Data sets split into smaller sub sets
- Then sorting each split subset
- Until each subset sorted – one item
- Then combine subsets together to provide solution

Advantages :
- Greatly simplifies complex problem - easier to solve
- As program grows, time taken to solve doesn’t increase as much

Disadvantages :
- Not all problems can be broken doesn’t and solved independently
- Makes use of recursion - stack overflow may cause crash

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

Problem Solving Strategies - Backtracking

A

Backtracking : Suited when a series of decisions must be made with little information where each decision leads to new choices.
- Logical approach to checking all options and not check twice

Process:
- When path has no more paths to visit
- Algorithm goes back to previous decision point
- To check for further paths to visit
- (Backtracks back to last point with unvisited paths)
- Repeat until no more unvisited paths

Advantages :
- Guaranteed to find solution if one exists
- Easy to implement and use

Disadvantages :
- It can consume a lot of memory
- If multiple solutions, it may not find the best or most efficient solution

(Apply to question - node, leaf node, parent node etc)

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

Data Mining

A

Data Mining : Process of turning big data into useful information by searching for relationships.

  • Involves searching through unconnected data and finding a correlation with pattern recognition algorithms.
  • Algorithms can brute force with high-speed computers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Data Mining Advantages and Disadvantages

A

Advantages :
- Can be used to discover hidden trends and predict future events / demands.
- Can be used to improve marketing to increase sales.
- Can be used in business modelling to plan future.
- Can be used to see where to focus attention / disregard - what’s being used or not used (website features)

Disadvantages :
- Requires powerful computers
- Privacy concerns around data (and data protection)
- Inaccurate data produces false results.

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

Heuristics

A

Heuristics : Finding an estimated approximate solution that is good enough where problem is very complex and not realistically solvable (unreasonably time-consuming or resource intensive).
- often makes use of experience to find solution quickly
- Decreased Accuracy trade off with increased speed

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

Performance Modelling

A

Performance Modelling : is when the behaviour of something is tested or simulated before it is used in the real world.
- Used for evaluating and predicting the performance characteristics and limits of a software system before it is used.

  • e.g. Testing with large number of simultaneous orders or with large number of customers/items
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Performance Modelling Advantages and Disadvantages

A

Advantages :
- Stress testing can ensure a system can cope with a large set of data or a large number of users.
- You are able to predict problems and act on them before the problems actually occur in the real world.

Disadvantages :
- The outcome of performance modelling is only as useful as the accuracy of the data that is fed into it
- If the rules that made up the model are wrong then it will produce incorrect results.

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

Pipelining

A

Pipelining : Process of dividing modules into individual tasks that are developed in parallel.
- Carries out multiple instructions concurrently
- Allows projects to be delivered faster
- Output of one process becomes input for another

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

Visualisation

A

Visualisation : Helps make problems easier to solve by presenting in simpler and easy to understand way - often graphical or visual representation e.g. Flowcharts.
- Benefit humans not computers by simplifying concepts.
- Best explain complex situation so programmers get better understanding.

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