2.2.2 Computational methods Flashcards

1
Q

Features that make a problem solvable by computational methods

A

Identifying if a problem can be solved using computational methods is the first stage
of problem solving

A computable problem can be solved using an algorithm

Some computable problems are impractical to solve due to the resources
(processing power, speed and memory) or time they need

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Problem recognition

A

Stakeholders state what they require from the solution

Information used to clearly define the problem and system requirements

Problem may be defined by considering:

Strengths and weaknesses of current solution

Inputs, outputs, stored data and volume of data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Problem decomposition

A

Problems are broken down into smaller problems until each subproblem can be
represented as a self-contained subroutine

Decomposition reduces problem complexity by splitting it up into smaller sections

Enables programmers to find sections that can be implemented using pre-coded
modules or libraries

Makes the project easier to manage

Teams can be assigned different modules depending on specialisms

Modules can be designed, developed and tested individually before being combined

Makes it possible to develop modules in parallel, therefore deliver projects faster

Simplifies debugging process, as it is quicker to identify, locate and mitigate errors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Use of divide and conquer

A

Problem-solving technique that can be broken down into three parts:

Divide
Halves the size of the problem with every iteration

Conquer
Each subproblem is solved, often recursively

Merge
Solutions to the subproblems are then recombined

Applied to problem-solving in quick sort, merge sort and binary search

Simplifies complex problems very quickly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Use of abstraction

A

Excessive details are removed to simplify a problem

Problems may be reduced to form problems that have already been solved

This allows pre-programmed modules and libraries to be used

Levels of abstraction allow a complex project to be divided into simpler parts

Levels can be assigned to different teams and details about other layers hidden

Makes projects more manageable.

Abstraction by generalisation used to group together sections with similar
functionality

Means segments can be coded together, saving time

Abstraction is used to represent real-world entities with computational elements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Problem solving strategies

A

Backtracking
Data mining
Heuristics
Performance modelling
Pipelining
Visualisation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Backtracking

A

Problem-solving technique implemented using algorithms, often recursively

Methodically builds a solution based on visited paths found to be correct

If a path is found to be invalid, algorithm backtracks to the previous stage

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Data mining

A

Technique used to identify patterns or outliers in large sets of data collected from a
variety of sources, termed big data

Spots trends or correlations between data which are not immediately obvious

Insights from data mining can aid predictions about the future

This makes data mining a useful tool in assisting business and marketing decisions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Heuristics

A

Non-optimal, ‘rule-of-thumb’ approach to problem-solving

Used to find an approximate solution when the standard solution takes too long to
find

Solution found through using heuristics is not perfectly accurate or complete

Used to provide estimations for intractable problems, shortest path-finding
problems, machine learning and language recognition

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Performance modelling

A

Mathematical methods used to test various loads on different operating systems

Provides cheaper, less time-consuming or safer method of testing applications

Useful for safety-critical computer systems, where a trial run is not feasible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Pipelining

A

Process in which modules are divided into individual tasks, with different tasks
being developed in parallel

Enables faster project delivery

Output of one process typically becomes the input of another, resembling a
production line

Commonly used in RISC processors: different sections of the
Fetch-Decode-Execute cycle are performed simultaneously

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Visualisation

A

Data can be presented in a way that is easier for us to understand using graphs,
trees, charts etc.

Makes it possible to identify trends that were not otherwise obvious

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly