Problem Decomposition (Cambridge (CIE) O Level Computer Science)

Revision Note

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Problem 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

  • Modern computer games are a good example of using decomposition 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

Inputs, processes, outputs and storage

  • Decomposing a problem requires developers to think about four component parts:

    • Inputs: data entered into the system

    • Processes: subroutines and algorithms that turn inputs and stored data into outputs

    • Outputs: data that is produced by the system, such as information on a screen or printed information

    • Storage: data that is stored on a physical device, such as on a hard drive or in memory whilst the program is running

Example - Area of a rectangle program

Inputs

Width of the rectangle

Height of the rectangle

Processes

Width x height

Outputs

Calculated area of the rectangle

Storage

Memory: width, height and area stored temporarily

Last updated:

You've read 0 of your 10 free revision notes

Unlock more, 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.