2.2.2

Cards (18)

  • Features of problem solved by computational methods - The first stage of problem solving is identifying whether or not a problem can be solved using computational methods. A problem that can be solved using an algorithm is computable. Problems can only be called computable if they can be solved within a finite, realistic amount of time. Problems that can be solved computationally typically consist of inputs, outputs and calculations
  • Drawbacks of Solvable of Computational Methods: it may be impractical to solve them due to the amount of resources or length of time they require in order to be completed. The number of problems that are in fact solved computationally are constrained, therefore, by factors such as processing power, speed and memory
  • Stakeholders state what they require from the finished product and this information is used to clearly define the problem and the system requirements. Requirements may be defined by: Analysing strengths and weaknesses with the current way this problem is being solved and Considering types of data involved including inputs, outputs, stored data and amount of data
  • Once a problem has been clearly defined, it is continually broken down into smaller problems. This continues until each subproblem can be represented as a self-contained subroutine. This technique is called problem decomposition
  • Decomposition reduces complexity, easier to manage and more maintainable and efficient in debugging and programming
  • Divide and conquer is a problem-solving technique used widely across computer science. This strategy can be broken down into three parts: divide, conquer and merge. ‘Divide’ involves halving the size of the problem with every iteration. Each individual subproblem is solved in the ‘Conquer’ stage, often recursively. The solutions to the subproblems are then recombined during the ‘Merge’ stage to form the final solution to the problem.
  • One common use of Divide and Conquer is in Binary Search
  • Divide and conquer is applied to problem-solving in quick sort and merge sort. The principle of divide and conquer is also used in problems which can be reduced by less than half in every iteration. This technique is sometimes called ‘Decrease and Conquer’.
  • The biggest advantage of using divide and conquer to solve problems is that the size of the problem is halved with each iteration which greatly simplifies very complex problems. This means that as the size of a problem grows, the time taken to solve it will not grow as significantly. The number of recursive calls made by a function that halves with each
    iteration is log2(n). Therefore, the time complexity of
    algorithms that use divide and conquer is of the order O(logn)
  • As 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.
  • Representational abstraction is a powerful technique that is key to solving a problem computationally. This is when excessive details are removed to simplify a problem. Abstraction allows programmers to focus on the core aspects required of the solution rather than worrying about unnecessary details. Using levels of abstraction allows a large, complex project and its functionality to be split up into simpler component parts. Individual components can then be dealt with by different teams, with details about other layers being hidden. This technique makes projects more manageable.
  • Abstraction by generalisation may also be used to group together different sections of the problem with similar underlying functionality. This allows for segments to be coded together and reused, so saves time. Once a problem has been abstracted into levels, abstract thinking is required to represent real-world entities with computational elements, such as tables and variables.
  • Backtracking is a problem-solving technique implemented using algorithms, often recursively. It works by methodically visiting each path and building a solution based on the paths found to be correct. If a path is found to be invalid at any point, the algorithm backtracks to the previous stage and visits an alternate path. Depth-first graph traversals are an example of backtracking.
  • Data mining is 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. Data mining is used in software designed to spot trends or identify correlations between data which are not immediately obvious. However, as 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.
  • Heuristics are a non-optimal, ‘rule-of-thumb’ approach to problem-solving which are used to find an approximate solution to a problem when the standard solution is unreasonably time-consuming or resource-intensive to find. The solution found through using heuristics is not perfectly accurate or complete; however, the focus is on finding a quick solution that is ‘good enough’ and heuristics provide a shortcut to this. Heuristics are used to provide an estimated solution for intractable problems
  • Performance modelling eliminates the need for true performance testing by providing mathematical methods to test a variety of loads on different operating systems. Performance modelling provides a cheaper, less time-consuming or safer method of testing applications. . 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.
  • Pipelining is a process that allows for projects to be delivered faster, as modules are divided into individual tasks, with different tasks being developed in parallel. Traditionally, the output of one process in pipelining becomes the input of another, resembling a production line.
  • Data can be presented in a way that is easier for us to understand using visualisation. This
    makes it possible to identify trends that were not otherwise obvious, particularly amongst
    statistical data. Depending on the type of data, data may be represented as graphs, trees,
    charts and tables. Visualisation is another technique that is used by businesses to pick up
    on patterns which can be used to inform business decisions.