Skip to content
Marlbridge

Practice Questions

OxfordAQA IGCSE Computer Science: Programming Fundamentals — Practice Questions (9210)

Original exam-style practice questions with full worked answers on data types, sequence/iteration/selection, and arithmetic, relational and Boolean operators, for OxfordAQA International GCSE Computer Science (9210).

Level
IGCSE
Topic
Programming
Updated

Aligned to OxfordAQA IGCSE Computer Science (9210), Teaching from September 2017, exams from May/June 2019. Official specification .

Syllabus page (what it covers and how it is assessed): OxfordAQA IGCSE Computer Science.

Syllabus points this page covers

9210

  • 2 Programming (whole topic)

Found an error? Report a correction.

Need help with this topic? Request a free trial class for IGCSE Computer Science (9210).

These are original questions written for Marlbridge, for revision and practice on this content. They are not reproduced past-paper questions, and they do not replicate the exam’s exact structure, question count or mark tariffs — examination boards hold copyright in their own papers. Use these alongside the official past papers available free from your board.

Related: Programming fundamentals study guide


Section A

1. State the data type most appropriate for storing: (a) a person’s age (b) whether a light is on or off (c) a single letter grade. [3]

2. Evaluate: (a) 17 DIV 5 (b) 17 MOD 5. [2]

Section B

3. Identify the three basic constructs of imperative programming, and give one example construct for each. [6]

4. Trace through the following pseudocode and state the final value of Total.

Total <- 0
FOR i <- 1 TO 4
  IF i MOD 2 = 0 THEN
    Total <- Total + i
  ENDIF
ENDFOR

[4]

5. Write a compound condition using a relational and a Boolean operator that is true only when a variable Score is greater than 50 AND a variable LivesLeft is greater than 0. [3]

6. Explain why using meaningful identifier names (e.g. studentScore rather than x) is good programming practice. [3]


Answers

1. (a) Integer [1]. (b) Boolean [1]. (c) Character (or string) [1].

2. (a) 17 DIV 5 = 3 [1]. (b) 17 MOD 5 = 2 [1].

3. Sequence — statements executed one after another in order, e.g. a series of assignment statements [1] [1]. Iteration — repeating a block of statements, e.g. a FOR or WHILE loop [1] [1]. Selection — choosing between different paths of execution, e.g. an IF...THEN...ELSE statement [1] [1].

4.

i = 1: 1 MOD 2 = 1 (not 0)          -- Total stays 0
i = 2: 2 MOD 2 = 0                  -- Total = 0 + 2 = 2
i = 3: 3 MOD 2 = 1 (not 0)          -- Total stays 2
i = 4: 4 MOD 2 = 0                  -- Total = 2 + 4 = 6

Final value of Total = 6

[1] [1] for correctly tracing the four iterations, [1] for correctly identifying which iterations satisfy the condition, [1] for the correct final value with working shown.

5. Score > 50 AND LivesLeft > 0 [1] [1] [1] (1 mark for each correct relational operator used, 1 mark for correctly combining them with AND rather than OR).

6. Meaningful identifier names make the purpose of a variable clear from its name alone, without needing to trace through the code to work out what it stores [1] [1]. This makes code easier to read, debug and maintain, both for the original programmer returning to it later and for anyone else working with the code [1].


Exam technique for this topic

Trace-table questions like Q4 are marked on showing working, not just the final value — set out each iteration of a loop on its own line, stating the condition being tested and whether it is true or false, since a correct final answer with no working shown may not earn full marks even though it demonstrates the right understanding. When identifying whether a loop should be definite (FOR) or indefinite (WHILE/REPEAT...UNTIL), ask whether the number of repetitions is known in advance — if it depends on a condition that could change unpredictably, an indefinite loop is required, not a FOR loop forced to approximate it. For compound conditions like Q5, always double-check whether the scenario needs AND (every part must be true) or OR (only one part needs to be true), since a condition using the wrong Boolean operator can silently produce working but incorrect code.

Worked example: writing an algorithm from a description

A question describes a simple program: read five numbers input by the user, and output whether each one is even or odd. A strong pseudocode answer combines all three constructs correctly:

FOR i <- 1 TO 5
  INPUT Number
  IF Number MOD 2 = 0 THEN
    OUTPUT "Even"
  ELSE
    OUTPUT "Odd"
  ENDIF
ENDFOR

This uses a definite loop (FOR, since exactly five numbers are known in advance), a MOD operation to test evenness (a number is even if it leaves no remainder when divided by 2), and a selection statement to output the correct result — practising this kind of translate-a-description-into-pseudocode exercise regularly, rather than only tracing pre-written code, builds the construction skill that longer algorithm-writing exam questions specifically assess.

Why pseudocode independence matters

Because 9210’s written exams always use OxfordAQA’s own pseudocode regardless of which language a candidate learned in the classroom, practising reading and writing in this specific pseudocode style — not just understanding the underlying logic in a familiar language like Python — is essential exam preparation. A candidate fluent in Python but unfamiliar with the exact pseudocode conventions the board uses (for example, <- for assignment, or ENDIF/ENDFOR closing keywords — published in the board’s separate pseudocode guidance, not the specification itself, which only states that exam questions use the board’s own pseudocode) risks losing time or making translation errors under exam pressure, even when their underlying programming understanding is otherwise strong.

Where marks are usually lost

  • Confusing DIV and MOD, or giving only one when a question asks for both the quotient and the remainder.
  • Writing a definite loop (FOR) where the number of repetitions is not actually known in advance.
  • Tracing a loop without showing each iteration’s working, losing method marks even with a correct final answer.
  • Treating AND and OR as interchangeable, when they produce different results whenever the two conditions being combined disagree.

Get free revision emails (optional)

Occasional emails with practice questions, worked explanations and links to free resources for the qualification and subjects you choose. No spam, and you can unsubscribe from any email. The free tools on this site never need an email.

Subjects (optional, up to 6)

Choose a qualification to see its subjects.

Related resources

Related articles

Studying this with a teacher

Working through Computer Science IGCSE?

This page is free and stays free. If you would rather be taught it, Marlbridge runs Computer Science classes one-to-one and in small groups of up to 15, online in your own time zone. The first trial class is free. WhatsApp replies within an hour (8am–11pm Pakistan time, every day); email the same day.

OxfordAQA Computer Science teachers at Marlbridge