You are on page 1of 5

COMPUTATIONAL THINKING

These ways of thinking help you to solve problems.

Aspect Definition Meaning Theoretical positives / Negatives Simple examples

Thinking abstractly Removing unnecessary details Identifying what does and doesn’t matter + Simplifies the problem / interface. Icons / symbols on a map.
and including only the relevant to solving the problem.
+ Less computation / data. Charting data.
details.
The idea of layering or levels of a
+ Easier to see how the solution to one Moving nodes on a graph data
problem.
problem can also be the solution to another. structure to change how it looks.
Deciding what variables & objects will
- Models will not be as accurate.
be needed.

Thinking ahead Identifying the preconditions of What you need to know before you can + Caching can speed up a process. Working out how much paint you
a system: inputs, outputs, and solve the problem. need before starting to decorate.
- Caching can be complicated to implement.
reusable components.
The state of data for an algorithm to Getting your debit card out before it
- Caching requires the correct data to be
work. is needed to be scanned.
fetched for the next instruction.
Identifying what data is required before Sorting data for a binary search.
it is needed (caching)
Identifying reusable program
components.

Thinking procedurally Breaking a problem down. Identifying several smaller sub- + Problems are easier to solve. Generating a subject grade requires
problems. putting marks into a system, before
+ Debugging is easier.
applying a grade boundary, before
Determine the order of events.
- May not be entirely possible with an event printing results.
driven rather than procedural approach to
programming.

Craig’n’Dave 1
Thinking logically Identifying individual steps and Identify the points at which a selection or + Makes writing an algorithm easier. Happens after thinking
decision points of an algorithm. iteration is needed. procedurally. Using a flowchart or
+ The complexity of an algorithm can be
pseudocode to identify the
Determine the conditions of the decision. determined.
individual steps of an algorithm.
Determine the next steps depending on + Algorithms can be simplified, or better
the outcome of the decision. solutions found more easily.
+ Identifies branches for testing.

Thinking concurrently More than one process Identifying parts of the problem can be + Increase in speed. When building a house, ordering
happening at the same time. executed at the same time. - May be difficult to program. the windows, while putting up the
walls.
- Can result in deadlock.
Playing sound in a game while
- Problem may not suit concurrency.
taking user inputs.
Multiple images downloading for a
webpage.

Craig’n’Dave 2
COMPUTATIONAL PROBLEMS

A problem is defined as being amenable to a computational approach if there are algorithms that can solve it within a finite number of steps. Problems exist that can
theoretically be solved in a finite number of steps but would take far too long to solve with today’s technology, so they are not considered amenable to computation. Cracking
256-bit encryption is an example; it is possible but would take at least 3 x 1052 years. Given infinite time and computing power, you cannot detect all metamorphic malware.
The halting problem is a perfect illustration of a problem that is not amenable to a computational approach – a computer can never know if it is stuck in an infinite loop.
Computers:
 Are suited to problems with sequential, logical steps.

 Can perform operations extremely quickly compared to humans.

 Eliminate human error (other than logic errors).

 Can store and retrieve large amounts of data.

 Are efficient at finding patterns in data.

Craig’n’Dave 3
COMPUTATIONAL METHODS

Aspect Definition Meaning Theoretical positives / Negatives Simple examples

Problem recognition Knowing what the problem is. Identifying the key requirements of a - Not all problems can be solved by a Identifying the requirements of a
solution. computer. program.
The halting problem.

Backtracking Going back to a previously Trying an alternative approach if needed. + Good for solving logic problems and When one valid move is found in a
successful match to find another providing artificial intelligence algorithms. game, going back to find a better
solution. - Only useful for sequential problems. move.

Data Mining The analysis of a large amount Looking for patterns within large data + Advantage can be gained if you can spot Supermarkets found that nappies
of data to provide new sets that are not immediately clear. unexpected trends and patterns. are often bought by men. Putting
information. + Anomaly detection. beer next to nappies increases the
sale of beer.
- Requires a lot of processing.

Heuristics Data that provides a suitable but Approximating solutions to ensure a + Reduces computation time. Estimating congestion when route
not necessarily accurate balance between time spent on solving planning.
- May not be the best solution.
solution. A best guess. the problem and getting to the best
A* algorithm with Manhattan
possible solution.
distance to the goal.

Performance Carrying out mathematical Knowing how well a solution will + Simulations / prototypes predict outcomes. Testing a new exam results system
modelling analysis to assess efficiency. perform before full implementation. before the day exam results are due
+ Cost effective, time saving & safety-first
to be published.
Building models to test scenarios. approach.
- Requires accurate data.
Pipelining The output of one process is the Some processes must be achieved one + Can speed up execution. Mix the cake ingredients, bake the
input to another. after another. cake, let it cool, add icing.

Craig’n’Dave 4
Queuing up processes. - Decisions & branches can mean the Fetching the next instruction while
pipeline has to be reset, as the next process decoding the current one.
is no longer the one to be done next.

Visualisation Visualisation is a representation Using diagrams to represent data for + Data is easier to read if it is presented in a Using diagrams to represent
of reality using symbols, charts, analysis. visual way. programs: systems diagrams, class
and colour. Modelling scenarios and comparing to + May be easier to spot trends, patterns, and diagrams and flowcharts.
visible reality. relationships between different items of data. Presenting data in unique ways:
rainfall in mm expressed as the size
of a raindrop icon.

Craig’n’Dave 5

You might also like