Examination Technique — Paper 1
advanced30 minLearning objectives
- Apply effective examination techniques to practical programming and algorithm questions
- Deconstruct a question's command word, constraints, assumptions and mark allocation before answering
Learn
Examination technique — Paper 1 (programming, data structures, algorithms)
Retrieval: the previous lesson established that the command word determines what an answer must actually do. This lesson adds the other half of question interpretation — reading a whole question precisely, under time pressure, before writing anything — applied specifically to Paper 1's practical, programming-facing style.
Key vocabulary
- Constraint — a stated limit the answer/solution must respect (a specific data type, a required method name, a maximum number of lines, a required technique).
- Assumption — something the question expects you to take as given, without further justification.
- Relevant information — details in the question that are actually needed to answer it correctly; irrelevant information — realistic-sounding detail included as context but not needed for the answer itself.
Understand — deconstructing a question before answering it
Before writing a single line of code or working out a trace, a strong response to any Paper 1 question identifies: the command word; the actual topic/skill being tested; any stated constraints; any assumptions the question is making; which given information is actually needed versus scene-setting detail; how many marks are available (a rough guide to how much is expected); and what a strong response to this specific question type looks like.
Deconstruct it — a worked example
Question: "A school's attendance system stores each student's attendance as a list of booleans, one per school day, where True means present. Write a function attendance_rate(record) that returns the percentage of days a student was present, rounded to 1 decimal place. (3 marks)"
- Command word: none explicit here (a "write a function" instruction) — the demand is a correct, working implementation, not a written explanation.
- Topic being tested: list processing / aggregation.
- Constraints: the function must be named exactly
attendance_rate, take one parameterrecord, return a percentage rounded to 1 decimal place — marks will likely be lost for a correct calculation returned in the wrong format (e.g. a raw fraction, or unrounded). - Assumptions: the list is never empty (not stated as a case to handle) — a strong answer might still guard against it, but the question doesn't explicitly require it.
- Relevant information: "list of booleans, True means present" (needed to know how to count). "School's attendance system" is scene-setting — not needed for the actual calculation.
- Marks (3): suggests roughly: correct approach to counting True values (1), correct percentage calculation (1), correct rounding/return format (1) — a useful guide to how much a strong answer needs to get right, not just "does it run."
Identify it — an unsignposted question
Question: "A ticket-booking system needs to check whether a proposed new booking's time slot clashes with any of a venue's existing bookings for that day. Write a function that performs this check. (4 marks)"
Identify the topic/skill this question is actually testing, even though it names no sequence or technique explicitly.
(This is testing overlap/range-comparison logic - comparing a proposed time range against a list of existing ranges to detect any overlap - the same reasoning taught in Sequence 19's badminton-booking work, here presented in a completely different (ticket-booking) scenario with no explicit hint that overlap-checking is the relevant skill.)
Common mistake
Starting to write code immediately after reading only the first sentence of a question. The constraints and required return format are very often stated in the SECOND half of a question (as in the worked example's "rounded to 1 decimal place") — a technically correct calculation returned in the wrong format loses marks that have nothing to do with whether the underlying logic was right.
Practise it — timed
Complete an existing coding challenge from earlier in this course under a stated time limit appropriate to its marks (roughly 1–1.5 minutes per mark is a reasonable guide) — before starting, write out the constraints, assumptions and relevant/irrelevant information exactly as in the worked example above, THEN implement.
Check your understanding
A question states: "...Your function must not use any built-in sorting function." A student's correct, working solution uses sorted(). Explain why this answer would likely lose marks despite producing the correct output. (The question states an explicit constraint - no built-in sorting function - and the solution violates it; a correct OUTPUT does not satisfy a question that is specifically testing whether the student can implement the sorting logic themselves, so marks tied to that specific requirement would be lost regardless of the final result being numerically correct.)
Challenge
Find a coding challenge you completed earlier in this course. Rewrite its description as an exam-style question with an explicit mark allocation, then deconstruct your own question exactly as in the worked example (command word/implicit demand, topic, constraints, assumptions, relevant/irrelevant information, what marks suggest).
Looking ahead: the next lesson applies the same deconstruction skill to Paper 2's theory-based, extended-response questions — where the "constraint" is often about which named concepts a strong answer must actually use.