Mark Scheme
Section A — Structured Questions
1. (a) (up to 2) The CPU processes data and instructions — it fetches, decodes and executes program instructions to carry out the tasks of the computer. [2]
(b) (up to 4) Fetch: the next instruction is copied from memory (RAM) into the CPU; Decode: the control unit works out what the instruction means/what needs to be done; Execute: the instruction is carried out (e.g. a calculation in the ALU, or data moved). Up to 4 for all three stages described. [4]
(c) (up to 4) Any two, 2 each: clock speed — more cycles per second means more instructions executed per second (faster); number of cores — more cores can process more instructions simultaneously; cache size — a larger cache stores more frequently used data/instructions close to the CPU, reducing time fetching from slower RAM. [4]
2. (a) (up to 2) RAM is volatile (loses contents when power is off) and stores data/programs currently in use; ROM is non-volatile and stores permanent instructions (e.g. boot-up/BIOS). One clear difference (volatility and/or purpose). [2]
(b) (up to 4) Virtual memory is the use of part of the secondary storage (hard drive) as if it were RAM when the RAM is full; the computer moves less-used data from RAM to this space so more programs can run, though it is slower than real RAM. What it is (2) + why used (2). [4]
(c) (up to 4) Two factors, e.g.: speed (SSD is much faster to read/write); durability/reliability (SSD has no moving parts, more shock-resistant); cost per GB (HDD is usually cheaper for large capacities); portability/power use. 2 each (factor + how it affects the choice for backing up 500 GB). [4]
3. (a) (up to 2) Decomposition = breaking a large/complex problem down into smaller, more manageable sub-problems that are easier to solve. [2]
(b) (up to 4) A linear search checks each item one at a time from the start until it finds the target; it works on any list. A binary search repeatedly checks the middle item and discards the half that cannot contain the target, so it is much faster, but the list must be sorted first. Two clear differences. [4]
(c) (6) Trace table for n = 4 (calculates 4! = 24):
| i |
result |
| 1 |
1 |
| 2 |
2 |
| 3 |
6 |
| 4 |
24 |
Marks: correct running values of result (1, 2, 6, 24) as i goes 1→4 (up to 4); correct final OUTPUT = 24 (1); correct handling/labelling of i (1). Accept result starting at 1 before the loop. [6]
4. (a) (up to 2) An infinite loop is a loop that never ends / has no condition that becomes false, so it keeps repeating forever (e.g. a WHILE condition that is always true). [2]
(b) (up to 4) A syntax error breaks the rules/grammar of the language so the program will not run/translate (e.g. a missing bracket or misspelled keyword prnt); a logic error lets the program run but produces the wrong result because the logic is faulty (e.g. using + instead of *, or > instead of <). Distinction (2) + example each (2). [4]
(c) (up to 6) Two techniques, 3 each: input validation (e.g. range/length/type/presence checks) to stop invalid data being entered and causing errors; authentication (passwords/user access) to protect the program/data; anticipating misuse / defensive design (handling unexpected inputs, contingency); verification/confirmation of input; clear commenting and testing. Technique + how it makes the program more robust. [6]
Section B — Extended Response
5. (16 marks) Levels-marked discussion.
- Open source: advantages — usually free, source code can be viewed and modified, adaptable, community support; disadvantages — may have limited official support/warranty, can require technical expertise, quality varies.
- Proprietary/closed source: advantages — usually professionally supported, reliable, regular updates, easier to use, tested; disadvantages — cost/licensing, cannot modify the source code, dependent on the vendor.
- Considerations: cost/budget; need for technical expertise in-house; need for support and reliability; whether the software must be customised; security and updates.
- Level 4 (13–16): balanced discussion of both types with advantages/disadvantages, relevant considerations and a justified conclusion; Level 3 (9–12): several developed points; Level 2 (5–8): limited/one-sided; Level 1 (1–4): basic.
Sample Answers with Examiner Commentary
Question 3(c) — Sample Answers
Grade A response.
"Before the loop, result is set to 1. The FOR loop runs from i = 1 to n, which is 4. When i = 1, result = 1 × 1 = 1. When i = 2, result = 1 × 2 = 2. When i = 3, result = 2 × 3 = 6. When i = 4, result = 6 × 4 = 24. The loop then ends because i has reached n. Finally the program outputs result, so the OUTPUT is 24. The algorithm calculates the factorial of n (4! = 24)."
Mark: 6/6. Examiner commentary: A full-mark answer. The candidate correctly traces the running value of result at every iteration (1, 2, 6, 24) as i increases from 1 to 4, showing the multiplication at each step rather than just the final figure, and states the correct output of 24. Recognising that the algorithm calculates a factorial demonstrates full understanding. Showing each step of the trace is exactly what the question requires and protects the answer against arithmetic slips.
Grade C response.
"The output is 24 because it multiplies 1 × 2 × 3 × 4."
Mark: 3/6. Examiner commentary: The candidate reaches the correct final output and correctly identifies that the numbers 1 to 4 are multiplied together, which earns some marks. However, the question specifically asks for a completed trace table showing the value of result and i at each step, and this working is not shown. In a six-mark trace question, most marks are for the step-by-step values (result becoming 1, then 2, then 6, then 24). Setting out the trace table row by row would gain the remaining marks and guard against errors.
Question 4(c) — Sample Answers
Grade A response (extract).
"One technique is input validation, where the program checks that data entered by the user is sensible before it is used. For example, a range check could ensure an age entered is between 0 and 120, and a presence check could ensure a required field is not left blank. This helps make the program robust because it prevents invalid or unexpected data from being processed, which could otherwise cause the program to crash or produce wrong results. A second technique is anticipating misuse through defensive design — the programmer thinks about the unusual or incorrect ways a user might use the program, such as entering text where a number is expected, and writes code to handle these cases gracefully rather than letting them cause an error. This helps because the program continues to behave sensibly even when it is used incorrectly, making it more reliable."
Mark: 6/6. Examiner commentary: A full-mark answer. Two distinct, valid techniques (input validation with concrete check types, and anticipating misuse/defensive design) are each explained clearly and, crucially, linked to how they make the program more robust — preventing invalid data from being processed, and handling incorrect use gracefully. Giving specific examples (a range check, entering text where a number is expected) and explaining the benefit of each, rather than just naming techniques, is exactly what the six-mark question rewards.
Grade C response.
"The programmer can use input validation to check the data and test the program to find errors."
Mark: 3/6. Examiner commentary: The candidate names two reasonable techniques — input validation and testing — earning three marks. However, neither is developed. The validation point could be explained with an example (such as a range or presence check) and a reason (stopping invalid data from causing crashes or wrong results), and the testing point could explain how it makes a program robust (finding and removing errors before release). Explaining each technique fully and separately, with how it helps, would earn the remaining marks.