At a glance

Individual · three hours, in the examination period · written and on paper · covers the whole course, weighted toward what you have done most

What it is for

Everything else you hand in this semester is work you had time to polish, help with, and rewrite. This is the one piece of evidence that is unambiguously yours, produced under the same conditions as everyone else’s. That is its whole purpose — not to catch anybody out.

What is on it

PartRoughlyWhat it asks you to do
A. Reading code25%Trace programs by hand and state the exact output
B. Finding faults20%Identify syntax, logic, and run-time errors, and say which is which
C. Writing code35%Write programs on paper: decisions, loops, lists, strings, functions, files
D. Systems and society20%Short answers on hardware, software, safe practice, and the impact of computing

Part C is the largest because writing programs is what this course is. Part A is next because you cannot write what you cannot read.

What to expect, precisely

  • Tracing. A program of fifteen to twenty-five lines and a table to fill in, one row per pass. The method is exactly Trace It and the tracing technique from Testing and Debugging.
  • Errors. Short programs containing a fault each. Name the fault, say whether it is syntax, logic, or run-time, and give the fix.
  • Writing. Two or three programs from a specification, on paper. Sensible names, correct structure, and a comment where a reader would otherwise have to guess. Perfect syntax is not the bar — a marker who cannot follow your intent is.
  • Short answers. A component matched to a requirement; source code against machine code; interpreter against compiler; a protection measure and what it stops; one environmental or career question.

How to prepare

  1. Re-trace, do not re-read. Take three programs from Units 1 to 3 and trace them cold. Reading code you already understand builds confidence and nothing else.
  2. Rewrite one program from each unit from scratch, without looking at the original, then compare. This finds the parts you had absorbed from your own file rather than learned.
  3. Work the practice sets in the Exercises pages you did not finish the first time — they were written for this.
  4. Your journal is a study guide. Code Journal entries about bugs you fixed are the most efficient revision in the course, because you wrote them at the moment of understanding.
  5. Come to the review classes with questions, not with a hope of being told what is on it. This page is what is on it.

On paper, without a machine

Write the way you would type, indentation and all. If you get stuck on a detail like the exact method name, write what you mean, name it clearly, and carry on — a program with one imperfect line and a clear structure earns nearly full marks; a blank page earns none.

How this is assessed

Against the same expectations as everything else. Per How Marks Work, this examination is part of the final 30% of the course mark, alongside The Community App — deliberately, so that neither one afternoon nor one project decides your grade alone.

Curriculum connection

A1.6

write programs that declare, initialize, modify, and access one-dimensional arrays.

Link to original

A2.2

use sequence, selection, and repetition control structures to create programming solutions;

Link to original

A2.3

write algorithms with nested structures (e.g., to count elements in an array, calculate a total, find highest or lowest value, or perform a linear search).

Link to original

A4.1

demonstrate the ability to identify and correct syntax, logic, and run-time errors in computer programs;

Link to original

B3.1

design simple algorithms (e.g., add data to a sorted array, delete a datum from the middle of an array) according to specifications;

Link to original

B3.2

solve common problems (e.g., calculation of hypotenuse, determination of primes, calculation of area and circumference) by applying mathematical equations or formulas in an algorithm;

Link to original

C3.3

explain the difference between source code and machine code;

Link to original

C3.4

explain the difference between an interpreter and a compiler;

Link to original