Computational thinking

Computational thinking (CT) is a way of solving problems so we can present solutions that a computer, a human, or both, can understand.

Thinking computationally is not programming. It is not even thinking like a computer as computers do not, and cannot, think.

Programming simply tells a computer what to do and how to do it.

Computational thinking helps you work out exactly what to tell the computer to do.

There are four elements to computational thinking:

  1. Decomposition
  2. Pattern recognition
  3. Abstraction
  4. Algorithm design

The four cornerstones of computational thinking are decomposition, pattern, abstraction and algorithms.

Decomposition

Decomposition breaks down problems into smaller parts, so that each one can be solved individually.

Pattern recognition

Pattern recognition is simply looking for similarities among and within problems. These shared characteristics can oven help us solve computational problems. We can look at how previous similar problems may have been alrea.

Pattern recognition is one of the cornerstones of computer science. It involves finding similarities or patterns among small, decomposed problems to help us solve more complex problems more efficiently.

Example:

An example of a pattern - can you recognise it?

Abstraction

Abstraction removes any unnecessary details so we can focus on the detail that is important.

Example:

A person might be abstractly described by just their name and date of birth in a simple database, rather than using lots of personal information such as where they live, where they work or their favourite music. A programmer looks at ways to simplify pieces of code and sequences in an algorithm to make them as efficient as possible – this will save time and speed up the running of the program.

Algorithms

In order to help solve problems in digital technology, it is important we produce a clear set of steps that outline proposed solutions.

An algorithm is a sequence of steps or instructions that are carried out to solve a problem or perform a task. An everyday algorithm would be using a recipe to bake a cake.