~ Design - How to tackle Design GCSE Computing - Pseudocode - Flow Charts -


Why Design? Can you imagine just diving straight into the development of a really important and complex system without first planning and designing it? Designing before development is key to success! It is also necessary for your project documentation.

What you need to include in this section:

  1. Pseudocode solution (this is a non coding language specific solution -it will show the steps involved in solving the problem but won't have the specific code yet)
  2. Flow chart - a visual guide to solving the problem (this is optional but it would put you in good stead to include both pseudocode and a flow chart to show your planning)
  3. Input, Output, Processing requirements
  4. User Navigation System / Menu System - how will the user get around your system/ use it
  5. Variables that will be declared with their datatypes 
  6. Structures and features/functions used to create this system
  7. Validation used to ensure a robust program
  8. Modular Programming - how I could use functions/sub programs to make my code more user friendly/re-usable
  9. how to use functions/sub programmes to produce structured reusable code
  10. Programming techniques required for solving this problem
  11. Any other design considerations or thoughts

Patience! You'll be coding soon

Web design and development

A Video on Web design (Design and Development) - not entirely related to a programmed solution but will give you some real world experience and context

Sneak peek at a former A* attempt

*Note this is for a much smaller task (Task 1 of 3)

An OCR High B grade exemplar

Time for you to try it yourself

A great way to familiarize yourself with what a controlled assessment will be like. Read through the task again and start designing

Worked solutions and suggested answers:

Subscription: Teacher's Drive Only

Design Tools

Systems Life Cycle (in a nutshell): Analyse - Design - Create - Test - Evaluate. Designing something or writing out some pseudocode before you actually write code is always a good idea! Get in to the habit of doing so! You can draw your flowchart here and screenshot it.

There are plenty of sample flow charts and templates to help you get started

An online drawing tool where you can dynamically create flowcharts. Screenshot them into your presentation for submission.

A few notes:

  • Students should be encouraged to use the formal conventions of creating flow diagrams and using
  • Students should use meaningful variable identifiers (for example, ‘Age’ for a variable about age rather
    than ‘X’), also use indentation and commenting in their pseudocode. This will make code easier to read
    and check for errors
  • Use of pseudocode

    The pseudocode commands and key words are given in the OCR Pseudocode Guide.

    The guide states:

    "The following guide shows the format pseudocode will appear in the examined components. It is provided to allow you to give learners familiarity before the exam. Learners are not expected

    to memorise the syntax of this pseudocode and, when asked, may provide answers in any style of pseudocode they choose providing its meaning could be reasonably inferred by a competent programmer."

    The pseudocode is to provide a format in which students can express the logic of an algorithm and the statement stresses that they will not be penalised if their answers do not exactly match the conventions shown in the guide, that is, syntax errors will not be penalised.

    Declaring and assigning variables and selecting suitable identifiers

    A variable is defined as a ‘named container’ for a value that can change as a program is running.

    Values are assigned using the ‘=’ symbol.

    Variables should be given meaningful names (identifiers) and the naming convention should be consistent, for example: firstName or first_name or FIRST_NAME.

    Selection using ‘if…then…elseif…else’ statements

    They are used to check variable values where there is one or multiple alternative responses.

    ‘endif’ should always be used to close the statement.

    For example:

    if index == 3 then

     print(“The variable index is equal to 3”)


    ‘==’ is used to check equality.

    If there are two alternative actions then ‘else’ can be used.

    For example:

    If index == 3 then

     print(“The variable index is equal to 3”)


     print(“The variable index is not equal to 3”)


    The ‘elseif’ statement is also used in the book.

    For example:

    If index == 3 then

     print(“The variable index is equal to 3”)

    elseif  index > 3 then

     print(“The variable index is greater than 3”)


     print(“The variable index is less than 3”)


    Nested ‘if’? statements.

    The last two examples are often referred to as ‘nested if’ statements as they contain more than one selection and action.

    However, ‘nested if’ also refers to two distinct ‘if’ statements, one inside the other.

    This is explained through a worked example.

    When using these two distinct statements, care must be taken with indentation and also that an ‘endif is used for each one.

    For example, this section of code would calculate a customer discount but would then limit it to a maximum amount of £20. It then calculates the final price allowing for the discount.

    if price >= 100 then

     discount = price/100*10

     if discount > 20 then


      discount = 20


     price = price – discount


    Use of ‘switch/case’ statements.

    This is another selection method and it is useful where there are many alternative responses based upon a single variable value, that is, no Boolean operators are used.

    It is especially useful when evaluating user input, although the selection could also be accomplished using

    ‘if…then…elseif…else) statements.