Principles of Computational Thinking (OCR GCSE Computer Science)

Revision Note

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

  • Solving problems that can be implemented by a computer system is known as computational thinking

  • There are three main principles of computational thinking:

    • Abstraction

    • Decomposition

    • Algorithmic thinking

Abstraction

What is abstraction?

  • Abstraction is the process of removing unnecessary details of a problem to focus on the important features to implement in a solution

  • Examples of abstraction include modelling a real-life object, environment, action, sequence of actions or concept.

  • Implementations of these include:

    • a computer game that simulates playing a sport

    • a simulator such as a car or flight simulator,

    • a map of a bus or train route in a city

  • When creating a program, developers must identify important features that will contribute to solving the problem or have a role to play in the solution

Computer games

computer-games
  • Computer games use a large amount of abstraction, removing the elements that a user does not need to consider in order to enjoy playing the game

  • When using abstraction in computer games which are designed to simulate real life, the aim is to make the game realistic and visually appealing whilst keeping the game fun to play

  • In a game that simulates a sport, it is important to the user that visually they recognise the environment and when they perform an action, they see a response

  • However, users do not need to know the complex algorithms used to control the non player characters (NPCs)

Train map

nature-of-abstraction-1-1
  • Another specific example of abstraction would be the London underground train route map; travellers do not need to know the geographical layout of the routes, only that getting on at stop A will eventually transport you to stop B

Worked Example

Jack plays rugby at his local rugby club. He wants to create a program to store the results of each rugby match they play and the names of the try scorers.

Define what is meant by abstraction [2]

Give one example of how abstraction could be used when developing this program [1]

Answer

  • Abstraction is removing unnecessary detail from a problem in order to focus on the parts of the problem that need solving

  • Simplifies the problem // reduces complexity // easier to solve

Any suitable example of abstraction as long as it is relevant to the system

  • Examples of what to ignore/hide/remove:

    • Time the try was scored

    • Player shirt number

    • Venue

  • Examples of parts to focus on:

    • Player name

    • Match result

    • Tries scored

Decomposition

What is decomposition?

  • Decomposition is the process of breaking down a large problem into a set of smaller problems

  • Benefits of decomposition are:

    • Smaller problems are easier to solve

    • Each smaller problem can be solved independently of the others

    • Smaller problems can be tested independently

    • Smaller problems can be combined to produce a solution to the full problem

  • An examples of decomposition in computing is:

Computer games

  • Modern computer games are decomposed to break down the complexity of the problem into more manageable 'chunks'

  • Creating an entire game at once would be challenging and inefficient, so it could be decomposed into:

    • Levels - Levels can be designed/created/tested/ independently of other levels

    • Characters - The mechanics of characters in the game can be designed and created by a separate team

    • Landscape - The art team can work on the visual aspects of the game without needing to understand how the game is programmed

  • Once all of the smaller problems are completed, joined together a complex game has been created

Algorithmic Thinking

What is algorithmic thinking?

  • Algorithmic thinking is the process of creating step-by-step instructions in order to produce a solution to a problem

  • Algorithmic thinking requires the use of abstraction and decomposition to identify each individual step

  • Once each step has been identified, a precise set of rules (algorithm) can be created and the problem will be solved

  • An example of algorithmic thinking is following a recipe, if the recipe is followed precisely it should lead to the desired outcome

  • A set of traffic lights is an example of how algorithmic thinking can lead to solutions being automated

Examiner Tips and Tricks

Don't just memorise the definition of algorithmic thinking! In the exam, you will have to demonstrate the skill by breaking a problem down into clear, step-by-step instructions (writing algorithms)

Algorithmic thinking takes practice, so the more you do, the easier it will become!

Worked Example

State the name of each of the following computational thinking techniques.

1. Breaking a complex problem down into smaller problems. [1]

2. Hiding or removing irrelevant details from a problem to reduce the complexity. [1]

Answers

  • Decomposition 

  • Abstraction

Last updated:

You've read 0 of your 5 free revision notes this week

Sign up now. It’s free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.