2.2.2 - Computational Methods Flashcards
Component 2
What are computational methods?
Techniques used to solve a problem using computational thinking
What is divide and conquer?
- Splits a big problem into smaller parts.
- Examples: Merge Sort | Quick Sort | Binary Search
Divide: Break the given problem into sub problems of same type.
Conquer: Recursively solve these sub problems
Combine: Appropriately combine the answers
What is problem decomposition and what benefits does it bring?
- Splitting a problem down into smaller sub-problems
- Creates a more manageable problem
- Can lead to the development of subroutines/modules
- Can tackle each sub problem independently
What is data mining?
- Turning large quantities of data into useful information
- Finding patterns and anomalieswithin large quantities of information
What are some example insights that might be gained when a supermarket uses data mining?
- Identify customer trends in order to identify offers to send customers
- Identify which stores are making the most profit
- Identify which items are not selling well to replace them with other items
Define problem recognition
Identifying there is a problem to be solved and what the problem is
Define and give examples of performance modelling
Simulate systems to test the behaviour of them before it is used under load.
Examples
* Testing the solution with many simultaneous transactions, often called stress testing
* Testing it with a large amount of data in the database
Define and give examples of visualisation
- Visualisations benefit humans rather than computers
- Visualisations present the information in a simpler form to understand
- Visualisations can best explain complex situations
Examples
- Graphs
- Arrays shown as grids
Define and give examples of backtracking
A methodical way of trying out different sequences until you find one that leads to a solution. Solving a maze is a typical problem of this kind.
Backtracking in Depth-First Tree Traversal
When a node does not have any node to visit e.g. D, the algorithm goes back to the previous visited node e.g. B to check for further unvisited nodes to visit e.g. H
Describe Heuristics and their purpose
- Used to speed up process of finding solution
- Rule of thumb approach which is used when unfeasible to analyse all eventualities. This leads to a “good enough” result although it is not 100% reliable.
Example Uses
* Used in the A* algorithm (more efficient than Dijkstra’s)
* Heuristics in Virus scanning: used to see if a file is displaying the signs of a virus rather than knowing it is a virus.
What is pipelining?
Concurrent processing of multiple instructions – increases speed of the program
Would allow one instruction to be fetched as the previous one is being decoded and the one before that is being executed.
What issues does pipelining face?
Struggles with code that uses branching, as wrong instruction may be brought, meaning flush would be used.