Mark Scheme
Section A — Module 1
Question 1
(a) (6) — Distinction up to 3: data are raw, unprocessed facts, figures or symbols with no context and no meaning in themselves; information is data that has been processed, organised or placed in a context so that it has meaning and value to a recipient and can support a decision. Credit an example that contrasts the two, e.g. "34" as data and "the patient's temperature is 34 °C, which is below normal" as information.
Characteristics, 1 each, max 3, each requiring a brief explanation not just a word: accuracy (free from error, correctly reflects the source); timeliness / currency (available when needed and not out of date); relevance (pertinent to the decision at hand); completeness (nothing material omitted); cost-effectiveness (value exceeds cost of producing it); presentation / clarity; verifiability.
(b) (5)
- (i) 173 = 1 0 1 0 1 1 0 1 (2 marks: 1 for a valid method — repeated division by 2 with remainders, or place-value subtraction 128+32+8+4+1 — and 1 for the correct answer). A correct answer with no method scores 1.
- (ii) 1011 0111 → group in fours from the right: 1011 = B, 0111 = 7, so B7₁₆ (2 marks: 1 for correct grouping into nibbles, 1 for the answer).
- (iii) 2F₁₆ = (2 × 16) + 15 = 47 (1 mark).
(c) (4)
- 45 = 0 0 1 0 1 1 0 1 (1).
- 62 = 0 0 1 1 1 1 1 0; one's complement 1 1 0 0 0 0 0 1; add 1 → −62 = 1 1 0 0 0 0 1 0 (2: 1 for inversion, 1 for the add-1 step and correct result).
- Addition: 0 0 1 0 1 1 0 1 + 1 1 0 0 0 0 1 0 = 1 1 1 0 1 1 1 1, which is negative; taking the two's complement back gives 0 0 0 1 0 0 0 1 = 17, so the value is −17 (1).
Follow through an arithmetic slip: if the two's complement of 62 is formed correctly and the addition is performed correctly on the candidate's own figures, award the method marks.
Question 2
(a) (5) — 1 mark each.
- Program counter (PC) — holds the address of the next instruction to be fetched; incremented after each fetch, or overwritten on a jump.
- Memory address register (MAR) — holds the address currently being read from or written to; the address bus carries its contents.
- Memory data register (MDR) — holds the data or instruction just fetched from, or about to be written to, that address.
- Instruction register (IR) — holds the current instruction while it is decoded by the control unit into opcode and operand.
- Arithmetic logic unit (ALU) — performs arithmetic and logical operations on data held in the accumulator and registers, and sets status flags.
Credit a candidate who sets these out as the ordered cycle (PC → MAR → memory → MDR → IR → decode → execute → PC incremented) with the full 5 provided each component's role is clear.
(b) (6) — 1 mark per valid comparison (up to 4), 1 for breadth across all four criteria, 1 for a justified recommendation. Each comparison must contrast the two, not describe one.
- Access time: SSD has no moving parts and no seek or rotational latency, so random access is an order of magnitude faster; HDD access time depends on head movement and platter rotation. This matters most for a record server, where access is predominantly random rather than sequential.
- Durability: SSD is resistant to shock and vibration; HDD has moving heads and platters vulnerable to mechanical shock — relevant in a school with unreliable mains supply. Against this, SSD cells have a finite write-endurance.
- Capacity per unit cost: HDD offers substantially more storage per dollar; for large archives this is decisive.
- Power consumption and heat: SSD draws less power and generates less heat, reducing cooling requirements and UPS load.
Recommendation (1): either is creditable if justified. A strong answer proposes a hybrid — SSD for the active database and operating system where random access dominates, HDD for backups and archived records where cost per gigabyte dominates. Award the mark only where the recommendation is tied to the stated workload.
(c) (4) — 1 mark each for the three memory types, 1 for thrashing.
- Cache — small, very fast memory (SRAM) on or near the processor, holding recently and frequently used instructions and data to reduce the average access time; exploits locality of reference.
- Main memory (RAM) — volatile working store holding the programs and data currently in use; directly addressable by the processor.
- Virtual memory — an area of secondary storage used as an extension of main memory; pages not currently needed are swapped out to disk, allowing programs larger than physical RAM to run.
- Thrashing — where main memory is insufficient, the system spends a disproportionate share of its time swapping pages between disk and RAM rather than executing instructions; because disk access is several orders of magnitude slower than RAM, throughput collapses even though the processor is not the bottleneck.
Section B — Module 2
Question 3
(a) (8) — 1 mark per topology description, 1 per advantage/disadvantage pair (max 2 for the two non-sketched topologies), and 3 for the star sketch.
- Star — all nodes connect individually to a central switch or hub; advantage: failure of one cable affects only that node, and performance is good since each node has a dedicated link; disadvantage: failure of the central device disables the whole network, and cabling cost is high.
- Bus — all nodes share a single backbone cable with terminators at each end; advantage: cheap and simple, requires least cable; disadvantage: a break in the backbone disables the whole network, and collisions degrade performance as traffic rises.
- Mesh — every node connects to several or all other nodes; advantage: highly resilient, multiple redundant paths; disadvantage: very high cabling and configuration cost, and complexity grows rapidly with node count.
Sketch (3): 1 mark for a clearly identified central device labelled switch or hub; 1 for exactly three nodes shown, each labelled (e.g. PC1, PC2, PC3); 1 for a separate line drawn from each node to the central device and no node-to-node links. A sketch showing nodes joined to one another, or nodes chained through each other to the centre, scores a maximum of 1.
(b) (7) — Benefits up to 4 (1–2 each), risks up to 3.
Benefits:
- Centralised, real-time data: stock levels and sales across all 40 branches are visible in one place, enabling accurate reordering and reducing both stockouts and overstock.
- Reduced local IT burden and cost: no server hardware, backup regime or patching at each branch; the provider handles updates, so all branches run the same version.
- Scalability and elasticity: additional branches or seasonal peaks are accommodated without capital purchase.
- Improved analytics and pricing: chain-wide reporting, loyalty programmes and consistent pricing become possible.
- Business continuity: data survives loss of a branch to fire, flood or theft.
Risks:
- Dependence on connectivity: a branch that loses its internet link cannot transact unless an offline mode exists — a material risk in territories with unreliable links, and the single most important point.
- Security and privacy: customer and payment data leaves the organisation's premises; breach at the provider affects all branches at once, and data may reside in another jurisdiction with different protection law.
- Vendor lock-in and continuity of supply: proprietary data formats and contract terms make migration costly; provider failure or price rises are outside the chain's control.
- Recurring operating cost replacing one-off capital cost, and loss of direct control over the upgrade timetable.
Question 4
(a) (6) — 2 marks each; each anomaly must be explained with reference to the data given, not defined in the abstract.
- Insertion: a new doctor who has not yet seen a patient cannot be recorded, because AppID is the primary key and there would be no appointment to hang the record on; equally a new patient cannot be registered before booking. Award 1 for naming the anomaly, 1 for the example drawn from the table.
- Update: R. Mohammed's phone number appears in rows A101 and A103. Changing it in one row and not the other leaves the database internally inconsistent, with no way to tell which value is current. Redundancy is the cause.
- Deletion: deleting appointment A102 — the only appointment of patient P12 — destroys all record of S. Charles and the phone number 645-1190, losing data the clinic still needs. Similarly, deleting all of Dr Ali's appointments erases Dr Ali.
(b) (6) — Award 2 marks per correct relation, requiring both a correct attribute set and a correctly identified primary key. Foreign keys must be identified for the full mark on APPOINTMENT.
- PATIENT (PatientID, PatientName, PatientPhone)
- DOCTOR (DoctorID, DoctorName)
- APPOINTMENT (AppID, PatientID*, DoctorID*, ApptDate, Diagnosis) — PatientID and DoctorID are foreign keys referencing PATIENT and DOCTOR respectively.
Accept a fourth relation for diagnoses (DIAGNOSIS code table) as a legitimate further refinement; do not penalise it. Deduct where PatientName or DoctorName remains in APPOINTMENT, since the transitive dependency on PatientID is precisely what 3NF removes — this is the discriminating error. A candidate who splits the tables correctly but omits the foreign keys caps at 4.
(c) (3) — Definition (2): referential integrity is the rule that every value of a foreign key must either match an existing primary key value in the referenced relation or be null; it is enforced by the DBMS, which will reject an insert or update creating an unmatched reference, and will restrict, cascade or nullify on deletion of a parent row. Consequence (1): orphaned records — an appointment referring to DoctorID D9 where no such doctor exists, so the appointment cannot be attributed, reports break, and joins silently drop rows.
Section C — Module 3
Question 5
(a) (5) — 1 mark each, max 5, in a sensible order.
- Define the problem — state precisely what is required, distinguishing the problem from its symptoms.
- Analyse the problem — identify inputs, processing required, outputs, and any constraints or assumptions (the IPO analysis).
- Design the solution — develop an algorithm as pseudocode or a flowchart, and design the data structures.
- Implement — code the algorithm in a chosen programming language.
- Test and debug — run with normal, boundary and abnormal (erroneous) data; correct syntax, logic and run-time errors.
- Document and maintain — produce user and technical documentation; correct latent faults and adapt to changing requirements after deployment.
(b) (7) — Award as follows.
- Input of both values, with sensible variable names (1).
- Correct three-way selection on T with correct boundaries: strictly less than 500, then 500 up to but excluding 2000, then 2000 or more (3 — award 1 per correctly constructed branch; a candidate using
> where >= is required at 2000 loses 1).
- Correct calculation of the discounted amount (1).
- Correct application of the further 2% to the already discounted amount, not to the original bill (1 — this is the discriminating mark).
- Output of the amount payable (1).
Model solution:
READ T, loyalty // loyalty is TRUE or FALSE
IF T < 500 THEN
rate ← 0
ELSE IF T < 2000 THEN
rate ← 0.05
ELSE
rate ← 0.12
ENDIF
amount ← T * (1 - rate)
IF loyalty = TRUE THEN
amount ← amount * 0.98
ENDIF
PRINT "Amount payable: ", amount
Accept any consistent notation, including nested IFs, CASE constructs, or a lookup approach. Do not penalise minor syntax so long as the logic is unambiguous.
(c) (3) — Trace table required; a narrative answer with the right final figure scores a maximum of 1.
| Step |
T |
loyalty |
rate |
amount |
| After READ |
2500 |
TRUE |
— |
— |
| After selection |
2500 |
TRUE |
0.12 |
— |
| After discount |
2500 |
TRUE |
0.12 |
2200.00 |
| After loyalty |
2500 |
TRUE |
0.12 |
2156.00 |
| Output |
|
|
|
2156.00 |
1 mark for correct rate of 0.12, 1 for 2200.00, 1 for 2156.00. A candidate who applies both discounts to the original bill obtains 2200 − 50 = 2150 and loses the final two marks; follow through only the arithmetic, not the method error.
Question 6
(a) (4) — Distinction (2): iteration repeats a block of statements under the control of a loop construct, with state held in variables updated on each pass; recursion is a routine that calls itself on a smaller instance of the same problem, with a base case terminating the descent, and state held on the call stack. Advantages (1 each): iteration is generally more efficient in time and memory since it incurs no call overhead and no stack growth, and cannot cause stack overflow; recursion expresses naturally recursive problems (tree traversal, divide-and-conquer sorts, factorial, Towers of Hanoi) far more concisely and readably, and often more closely mirrors the mathematical definition.
(b) (4) — Output 33 (2 marks). Working credited: multiples of 3 or 5 up to and including 10 are 3, 5, 6, 9, 10; sum = 33. A candidate who omits 10 obtains 23 and scores 1 for method. Description (2): the algorithm sums all integers from 1 to n inclusive that are divisible by 3 or by 5. Award 1 only where the candidate says "adds up numbers divisible by 3 and 5" without making clear that it is an inclusive OR, since that phrasing describes multiples of 15.
(c) (7)
- Initialisation of the running total to 0 (1).
- Initialisation of highest and lowest — 1 mark, awarded only where both are initialised to the first element of the array, or by an equivalent safe device. Initialising highest to 0 is unsafe if all marks could be negative, and initialising lowest to 0 is a definite error since no mark would ever be lower than 0 and the algorithm would always report 0 (this is the principal discriminator).
- A single correctly bounded loop over all 200 elements (1).
- Correct comparison and update of highest (1).
- Correct comparison and update of lowest (1).
- Accumulation of the total inside the loop (1).
- Correct mean computed after the loop by dividing by 200, and all three values output (1).
Model solution:
highest ← MARKS[1]
lowest ← MARKS[1]
total ← 0
FOR i ← 1 TO 200 DO
IF MARKS[i] > highest THEN highest ← MARKS[i] ENDIF
IF MARKS[i] < lowest THEN lowest ← MARKS[i] ENDIF
total ← total + MARKS[i]
ENDFOR
mean ← total / 200
PRINT "Highest: ", highest
PRINT "Lowest: ", lowest
PRINT "Mean: ", mean
A solution using three separate loops answers a different question — the requirement is a single pass — and caps at 5.
Level descriptors (extended-response parts)
- Level 4 (top band): Accurate technical knowledge expressed in correct terminology; comparisons genuinely two-sided and tied to the context given; algorithms correct at the boundaries and safely initialised; traces presented in a table; recommendations justified by reference to the stated workload rather than asserted.
- Level 3: Sound knowledge with mostly correct terminology; comparisons present but one-sided in places; algorithm logic broadly correct with boundary or initialisation errors; conclusions stated but thinly justified.
- Level 2: Largely descriptive; terminology imprecise; algorithms show the right general shape but fail on selection boundaries or loop bounds; no trace table.
- Level 1: Isolated correct facts; algorithm fragments without control structure.
Sample Answers with Examiner Commentary
Question 5(b) and (c) — Sample Answers
Grade I (Distinction) answer (extract)
READ T
READ loyalty
IF T < 500 THEN
rate ← 0
ELSE IF T >= 500 AND T < 2000 THEN
rate ← 0.05
ELSE
rate ← 0.12
ENDIF
amount ← T - (T * rate)
IF loyalty = TRUE THEN
amount ← amount - (amount * 0.02)
ENDIF
PRINT "Amount payable is $", amount
"Trace for T = 2500, loyalty = TRUE:
| Step |
T |
loyalty |
rate |
amount |
| After input |
2500 |
TRUE |
— |
— |
| Third branch taken |
2500 |
TRUE |
0.12 |
— |
| Discount applied |
2500 |
TRUE |
0.12 |
2200.00 |
| Loyalty applied |
2500 |
TRUE |
0.12 |
2156.00 |
Output: Amount payable is $2156.00"
Mark: 10/10. Examiner commentary: The three bands are constructed with the correct boundaries — the candidate has written T >= 500 AND T < 2000 explicitly rather than relying on the reader to infer it, and the final ELSE correctly captures 2000 and above including the boundary value itself. The critical mark is earned in the line amount ← amount - (amount * 0.02): the loyalty deduction is taken from the already discounted figure, not from T. This is the single most commonly failed point on the question. The trace is presented as a table with a row per stage rather than as a sentence, and the intermediate value 2200.00 is shown, which is what earns the middle trace mark independently of the final answer. Full marks.
Grade III (Pass) answer (extract)
READ T
IF T < 500 THEN amount = T
IF T > 500 THEN amount = T - 5%
IF T > 2000 THEN amount = T - 12%
IF loyalty THEN amount = T - 2%
PRINT amount
"For T = 2500 the answer is 2150."
Mark: 4/10. Examiner commentary: The overall shape is recognisable and the three discount rates are correct, which secures some credit. Three separate faults cost the rest. First, the conditions use > rather than >=, so a bill of exactly 500 or exactly 2000 falls through every branch and is left undiscounted — boundary values are exactly what a marker tests. Second, the branches are independent IF statements rather than an IF/ELSE chain, so a bill of 2500 satisfies both the second and the third condition; only the accident that the third assignment comes last saves the result. Third, and most seriously, the loyalty line calculates 2% of T rather than 2% of the discounted amount, which is the mark the question is built around. The trace is a bare number with no table, so only one of the three trace marks is available. The candidate has the right idea throughout and loses six marks on precision alone — which is the characteristic failure at this grade.
Question 4(b) — Sample Answers
Grade II (Merit) answer (extract)
"PATIENT (PatientID, PatientName, PatientPhone) — primary key PatientID
DOCTOR (DoctorID, DoctorName) — primary key DoctorID
APPOINTMENT (AppID, PatientID, PatientName, DoctorID, ApptDate, Diagnosis) — primary key AppID"
Mark: 4/6. Examiner commentary: The decomposition is essentially right. PATIENT and DOCTOR are correctly separated with correct primary keys, and the candidate has seen that AppID identifies an appointment. Two marks go. PatientName has been left in APPOINTMENT alongside PatientID, which reintroduces the very transitive dependency that third normal form exists to remove — the name depends on PatientID, which depends on AppID, so the update anomaly identified in part (a) survives the redesign untouched. The foreign keys are also not identified as such; listing PatientID in APPOINTMENT is not the same as stating that it references PATIENT(PatientID), and the mark scheme requires the relationship to be named. Removing one attribute and adding one line of annotation would have taken this to full marks.
How Unit 1 is assessed
Paper 02 carries 90 marks and contributes 50% of the Unit 1 external assessment mark, alongside Paper 01 (multiple choice, 30%) and the School-Based Assessment (20%). All six questions are compulsory and the three Modules carry equal weight, so no Module can be neglected. Grades are reported Grade I – Grade VII, with Grade I the highest.
Three habits separate the top band. First, test your own algorithms at the boundaries before you move on — the great majority of marks lost in Module 3 go on > where >= is required, on loops that run one iteration too few, and on variables initialised to zero where they should be initialised to the first element. Second, show intermediate values: in conversions, in two's complement arithmetic and in traces, the method marks are awarded for the working, so a correct final answer written alone routinely scores less than a wrong answer with sound working. Third, when asked to compare, write comparatively — a paragraph on SSDs followed by a paragraph on hard disks is two descriptions, not a comparison, and the mark scheme requires both sides in the same breath.