2.2.1 Programming techniques Flashcards
1
Q
What makes a problem computable?
A
- Can be solved by an algorithm
- In a finite, reasonable time
2
Q
What is decomposition?
A
- Continually breaking down a problem into smaller subproblems
3
Q
What is divide and conquer?
A
- Divide: halving size of problem
- Conquer: solve subproblems
- Merge: solutions combined to form final solution
4
Q
What are the advantages of divide and conquer?
A
- Simplifies very complex problems
- Lower time complexity
5
Q
What are the disadvtages of divide and conquer?
A
- Stack overflow
- Difficult to trace
6
Q
What is backtracking?
A
- Methodically visitng each path
- Building a solution based on correct paths
- If path is incorrect backtracks to previous stage and takes alternative path
7
Q
What is data mining?
A
- Idetify patterns or outliers in large sets of data
- Spot trends and correlations which arent obvious
- Can be used to make predictions
8
Q
What are heuristics?
A
- Non-optimal approach
- Not all data is gathered
- Approximate solution
- Used when its unfeasible to look at all eventualities
9
Q
What is pipelining?
A
- Completing subtasks simultaneously
- Using the output of one subtask as the input for another
10
Q
What is visualisation?
A
- Data represented visually (graphs,trees etc) to make it easier to understand
- Helpful to identify trends that may not be obvious otherwise