Computational Methods Flashcards
Abstraction and Decomposition
Applying techniques like abstraction and decomposition help to simplify the complexity of a problem and break it down making it easier to write an algorithm to solve the problem
Enumeration
Involves designing an algorithm that performs an exhaustive search and attempts all possible solutions until the correct one is found
Theoretical Approach
If a problem can be boiled down to pure theory, it becomes easy to represent using mathematical equations and due to computers being great at maths these problems are great candidates for being solved by an algorithm
Simulation
The process of designing a model of a real life system in an attempt to understand its behaviour
Automation
Building problem-solving models and putting them into action
Simulation and Automation
Both simulation and automation make heavy use of abstraction and are ways of turning complex problems into ones that can be more easily solved by algorithms
Problem Decomposition
The process of taking a large problem and breaking it down into several smaller parts making the problem more manageable and easier to understand
Divide and Conquer
A technique that reduces the size of a problem with each successive iteration
1.) Take a problem
2.) Apply some rules
3.) Based on the outcome of those rules, discard any data that doesn’t match
4.) Take the remaining data and start again from step 1
Back Tracking
The process of incrementally building towards a solution, abandoning partial success when the solution can’t be completed and going back to a previously successful match
Data Mining
Analysing vast amounts of data gathered from a variety of sources to discover new information and trends
Heuristics
Using experience and estimates to find a solution that can be considered “good enough”
Performance Modelling
The process of approximating how well models perform using mathematics
Pipelining
Splitting a large task into manageable chunks and overlapping these smaller processes to speed up the overall process
Visualisation
Allows a user to create a mental image of what a program will do or how it will work