What is backtracking?
An algorithm that incrementally finds a solution by methodically trying different sequences and abandoning a path when it knows it cannot lead to a valid solution.
What are computable problems?
A problem for which every instance can be solved in a finite number of steps by means of an algorithm
What are computational methods?
A method of solving a problem which involves some form of computation in devising and implementing an algorithm
What is divide and conquer?
An algorithm design technique to decompose and solve problems by reducing the problem size with each iteration until the subproblem becomes solvable
What are heuristics?
A rule-of-thumb algorithm which can produce a valid suboptimal solution for a hard/intractable problem as an approximation
What is performance modeling?
The process of simulating the behaviour of a model under different virtual user and system loads by mathematical approximation
What is pipelining?
The process of splitting a task into parts and then searching for subtasks that can be processed simultiesly to overlap the processing of each part
What is problem recognition?
The ability to recognise the most effective strategy to solve a problem.
What is visualisation?
The use of a visual representation of an algorithm or data structure to translate a problem and its solution to a more human-readable form.
What makes a problem computable?
Finite
Realistic amount of time
Consists of inputs/outputs and calculations
What makes a problem intractable?
It may be impractical to solve them due to the amount of resources or length of time they require in order to be completed.
What constraints are there for which problems can be solved computationally?
The number of problems that can be solved computationally are constrained by factors such as processing power, speed, and memory.
Advantages of decompisiton?
Makes the project easier to manage, as different software development teams can be assigned dif sections of the code according to their specialisms.
Sections can be individually designed, developed and tested before being combined Enables multiple parts of the project to be developed in parallel (faster)
Makes debugging simpler and less time-consuming, as it is easier to identify, locate and fix errors in individual modules.
What is decrease and conquer?
The principle of divide and conquer is also used in problems which can be reduced by less than half in every iteration.
What is the benefit of divide and conquer algorithms?
The size of the problem is halved with each iteration, which greatly simplifies very complex problems.
Meaning that as the size of a problem grows, the time taken to solve it will not grow as significantly.
What is the time complexity of divide and conquer algorithms?
O(logn)
What is a disadvantage of divide and conquer algorithm?
Divide and conquer mostly makes use of recursion; it faces the same problems that all recursive functions face
Stack overflow will cause the program to crash, and large programs are very difficult to trace.
What is data mining?
A technique used to identify patterns or outliers in large sets of data, termed big data. Big data is typically collected from a variety of sources.
What is data mining used for?
Data mining is used in software designed to spot trends or identify correlations between data which are not immediately obvious.
Insights from data mining can be used to make predictions about the future based on previous trends.
Making it a useful tool in assisting business and marketing decisions
How does data mining relate to legal issues?
Data mining often involves the handling of personal data; it is crucial that it is dealt with in accordance with the present legislation regarding data protection.
As of 2018, all data held and processed by organisations within the EU must follow the rules set by the GDPR.
What is performance modelling used for?
This is useful for safety-critical computer systems, where it is not safe to do a real trial run before the system can be implemented.
What can the results of performance modeling be used for?
The results of performance modelling can help companies judge the capabilities of a system, how it will cope in different environments, and assess whether it is safe to implement.