FL
📖 Topic 11 Programming scenarios · 11.1 · 11.2

11.1-11.2 Read Lab

The scenario becomes code — but not yet. First, you read. Extract inputs, processes, and outputs. Identify every named data structure. List every requirement. Only when the blueprint is complete does the coding begin.

⚠️ No hard prerequisites for Topic 11. Topic 7 pseudocode fluency and Topic 8 arrays help — but Lab A is where the scenario-reading skill is built regardless. Carry on here.
🧪 Exam Mode ON — recall from memory, then reveal
§1 · Topic Overview

Why Topic 11 matters

Topic 11 is the single highest-yield question on Paper 2. Every sitting since 2023 includes one 15-mark extended-response programming scenario as the final question — worth roughly 20% of the whole paper. Get it right and you can afford to lose marks elsewhere.

Cambridge accepts pseudocode, Python, Java, or VB.NET. The 2025 s25 examiner report says: "Candidates who answered algorithm questions using pseudocode, as stated in the question, achieved the best marks."

📖 The Blueprint metaphor

"Analyse the scenario before you code." Lab A is the drafting room. You read the problem, extract the shape, and make the blueprint. Lab B is where you assemble the pattern blocks. Lab C is where you ship the finished program.

§2 · Learning Objectives

By the end of Lab A you will be able to:

  • Read a Paper 2 Q11 scenario stem and identify every named data structure
  • Distinguish 1D vs 2D array requirements from the wording
  • Extract every explicit requirement (bulleted under "Write a program that…")
  • Produce an Inputs / Processes / Outputs (IPO) table from the scenario
  • Recognise implicit requirements — validation, messages, comments — even when not bullet-listed
  • Identify aggregation targets (SUM, COUNT, AVERAGE, MIN, MAX) from natural-language phrases
  • Cross-check your IPO table against the requirements list before writing any code
§3 · Key Terminology

Nine terms that unlock the scenario-reading skill

Programming scenario — a real-world problem described in natural language, requiring a full program as the answer
Requirements — the bullet-listed criteria under "Write a program that…". Each must be covered by the solution.
Input — data the program takes in from the user (or an external source)
Process — an action the program performs on data (calculate, compare, store, count)
Output — data the program returns to the user, always with a message
Data structure — a named container the scenario tells you to use, usually a 1D or 2D array plus supporting variables
Validation — checking an input meets criteria before storing it. Cambridge always requires this.
Aggregation — summarising many values into one (SUM, COUNT, AVERAGE, MIN, MAX)
IPO table — a three-column table listing every input, process, and output. The plan you make before coding.
§4 · Core Theory · the 3-step Reading Method

§4.1 · Step 1 — Read the scenario twice

First read for context: what does the program do overall? Second read for detail: what does each sentence specify? The 2025 s25 examiner report flagged "candidates whose responses closely matched the requirements stated in the scenario, ensuring that all points were fully covered, achieved the highest marks." Two reads is how you make that happen.

§4.2 · Step 2 — Highlight named data structures

Scenarios name the arrays and variables you must use — TeamName[], TeamPoints[], ClassSize, MatchNo. Underline them. Do not rename them in your solution. The 2024 s24 mark scheme rewards "data structures required with names as given in the scenario".

§4.3 · Step 3 — Extract every requirement bullet

Under the words "Write a program that…" Cambridge lists bulleted requirements. Count them. Cover each one in your solution. Miss one and you lose the marks for it, plus the "all criteria covered" axis of the mark scheme.

§4.4 · Fill the IPO table

Three columns: Inputs (what the program reads), Processes (what it calculates/counts/finds), Outputs (what it displays). One row per action. Include implicit rows: validation (input processing), messages (output labelling), comments (documentation).

§4.5 · Sanity check

Does the IPO table cover every requirement? Highlight each requirement bullet, then find the IPO row that fulfils it. If any requirement has no corresponding row, add it. If any IPO row has no requirement, delete it.

§5 · Worked Examples

WE1 · 2023 F/M P22 Q11 — Sports league

Scenario extract: "The 1D array TeamName[] contains the names of teams in a sports league. The 2D array TeamPoints[] contains the points awarded for each match."

Step 1 · Data structures. TeamName[] (1D, string), TeamPoints[] (2D, integer), LeagueSize (variable), MatchNo (variable).
Step 2 · Requirements bullets. (1) calculate total points per team, (2) count away wins/home wins/drawn/lost per team, (3) output name + total + all four counts per team, (4) find highest + lowest team.
Step 3 · IPO table.
Inputs: (implicit) validation loop for match result codes 0-3.
Processes: total points per team (nested loop over TeamPoints), count each result type (CASE OF), find max/min total (linear search + second pass for all matches).
Outputs: per-team line with name, total, and four counts; team name with max points; team name with min points; suitable messages on all.

WE2 · 2024 s24 P22 Q11 — Screen time

Scenario extract: "The 2D array ScreenTime[] is used to input the number of minutes on each day spent in front of a screen."

Step 1 · Data structures. StudentName[] (1D, string), ScreenTime[] (2D, integer), ClassSize (variable).
Step 2 · Requirements bullets. (1) input daily minutes for all students for a week, (2) total minutes per student, (3) count days > 300 min per student, (4) average class weekly minutes, (5) find lowest-weekly student.
Step 3 · IPO table.
Inputs: daily minutes for each student per weekday (nested loop).
Processes: weekly total per student (running total), count days > 300 (counter), class average (sum ÷ ClassSize), lowest weekly student (MIN search + second pass for ties).
Outputs: name, total in hours+minutes, days-over-300 per student; class average; lowest-total student name — all with messages.
§6 · Common Misconceptions

Five anchor traps (Review tab has all 10)

Trap · Skipping the second read

The scenario looks simple after one read. Second read catches: array indices, implicit constraints ("a maximum of N…"), the "additional guidance" block at the end.

Fix: read twice. Every scenario. Every time.

Trap · Treating requirements as suggestions

The bullet list is not a "wishlist". Every bullet is a marking axis. The 2024 s24 mark scheme literally checks "all criteria stated for the scenario have been covered".

Fix: tick each bullet as you cover it. Cross-check the IPO table against the list.

Trap · Assuming implicit requirements are optional

Validation, input/output messages, and comments are always required by the mark scheme — even when the requirements list doesn't spell them out.

Fix: add validation, messages, and comments to every scenario. Always.

Trap · Confusing 1D vs 2D from the wording

Reading fast, you miss the "(2D)" tag in a phrase like "the 2D array TeamPoints[]". Your DECLARE has one dimension. Your loops don't nest. You lose the whole "data structures used correctly" mark-scheme axis.

Fix: underline every "1D" and "2D" tag during the second read. Cited: recurring 2023-2025 examiner reports.

Trap · Outputting one match when all matches are required

A requirement says "output the student with the lowest weekly total" — you output one name and move on. But multiple students can tie for the lowest. All matches lose marks otherwise. This is the killer 2025 s25 P22 Q11 examiner-cited trap.

Fix: every "output the X" gets a MIN/MAX pass AND a second pass to output all indices matching the target value.
§7 · Cambridge Exam Focus

Mark-scheme language you must recognise

"Data structures required with names as given in the scenario" — verbatim from 2024/2025 mark schemes
"More than one technique seen applied to the scenario" — the "techniques" axis: selection · iteration · counting · totalling · I/O
"All criteria stated for the scenario have been covered by the use of appropriate structure"
"Appropriate messages to accompany all inputs and outputs"
"Comments to explain the purpose or function of each part or sub-part of the solution"
§8 · Quick Knowledge Check

Tap each card to reveal (0/8 revealed)

Q1 · How many times should you read a Paper 2 Q11 scenario before writing code?
✅ Twice. Once for context, once for detail. This is textbook §11.2 verbatim guidance.
Q2 · The scenario says "the 2D array Scores[] holds the points". What must your DECLARE statement include?
✅ Two dimensions, e.g. DECLARE Scores : ARRAY[1:N, 1:M] OF INTEGER. Using a 1D array here loses the "data structures used correctly" axis.
Q3 · What are the three columns of an IPO table?
✅ Inputs · Processes · Outputs.
Q4 · The scenario never says "validate the input". Do you still need validation?
✅ Yes. Validation is an implicit requirement — Cambridge mark schemes always check for it.
Q5 · A requirement says "output the students with the lowest total". Do you output one name or many?
✅ All matches. Multiple students can share the lowest total. Outputting one is the 2025 s25 P22 Q11 examiner-cited trap.
Q6 · The scenario names an array StudentName[]. In your solution, can you rename it Names[]?
✅ No. Cambridge mark schemes reward "names as given in the scenario". Renaming loses marks.
Q7 · Where in the scenario should you look for aggregation targets?
✅ In natural-language phrases: "total", "count", "average", "highest", "how many" — these all map to SUM, COUNT, AVERAGE, MAX aggregations.
Q8 · At the end of a scenario is a small "additional guidance" block. What's in it?
✅ Rules about arrays being pre-declared, initialisation not needed, or message requirements. The 2024 s24 examiner report specifically praised candidates who "followed the remaining additional guidance at the end of the scenario".
§9 · Ready for Activities?

🎯 You can read a scenario like an examiner.

Head to Activities and try the Scenario Reader — 8 real Paper 2 stems ready for you to tag.

📖 Quick nav

  • §1 · Topic overview
  • §2 · Learning objectives
  • §3 · Key terminology
  • §4 · Core theory · 3-step method
  • §5 · Worked examples
  • §6 · Common misconceptions
  • §7 · Cambridge exam focus
  • §8 · Quick knowledge check
  • §9 · Ready for Activities?

📊 Progress

0Practice attempted
0Exam attempted
0Skills mastered

🎯 Weakest skills

§1 · Textbook card

Getting Started · Context · Discussion

Getting Started. Why do programming scenarios feel harder than practice questions? Because they hide the answer inside natural language. You have to translate first, code second.

Context. The 2024 s24 P22 Q11 scenario begins: "The 2D array ScreenTime[] is used to input the number of minutes on each day spent in front of a screen. The position of each student's data in the two arrays is the same…" This is the shape of every Paper 2 Q11.

Discussion. Two students see the same scenario. One writes an IPO table before coding. The other starts coding immediately. Who scores higher, and why?

Tap to reveal
✅ The IPO student. They cover more requirements (mark-scheme axis 3), use the right data structures (axis 1), and finish comments + messages (axes 4-5) with time to spare. The other rewrites, over-engineers early requirements, and runs out of time.
§2 · Contrast box

Method 1 vs Method 2

Method 1 · Analytical (IPO-first)

Best for: IPO-shape scenarios — most Paper 2 Q11s.
Time cost: upfront (~5 min planning).
Failure mode: analysis-paralysis if the student over-plans.

Method 2 · Practical (walk-through)

Best for: menu-driven or state-machine scenarios (e.g. 2025 s25 P22 Q10 membership codes).
Time cost: distributed (plan-as-you-code).
Failure mode: missing edge cases.

Lab C teaches Method 2 in depth. Lab A drills Method 1 — the default for most scenarios.

§3 · Secondary interactive · IPO Quick-fill

Paste a scenario stem — auto-populate the IPO table

Quick warm-up before Scenario Reader. Keyword detection: input/read/enter → INPUT; output/print/display/return → OUTPUT; calculate/count/total/find/sort → PROCESS. Review + correct — the tool is a starter, not a marker.

§4 · Cambridge syntax reference · scenario-language patterns

Six phrase-patterns that map to code structures

Scenario phrase patternCode implication
"one-dimensional (1D) array X[] contains…"DECLARE X : ARRAY[1:N] OF Datatype
"two-dimensional (2D) array Y[] is used to…"DECLARE Y : ARRAY[1:N, 1:M] OF Datatype
"input and validate the …"Validated input loop (Trap 1 target)
"output the … with the highest/lowest …"MIN/MAX + second pass for all matches (Trap 5 target)
"the position of X's data is the same in both arrays"Parallel array indexing pattern
"a maximum of N …"Bounds check inside validation loop
§5 · Inline trap cards

6 examiner-cited traps to internalise here (Review has all 10)

Trap 1 · Skipping the second read

You look at the scenario, feel confident, and skip the second read. You miss a data structure or a requirement bullet.

Source: textbook §11.2 (explicit habit)

Trap 2 · Missing implicit requirements (validation / messages / comments)

Scenario doesn't literally say "validate the input" but the mark scheme axis rewards validation. Same for messages and comments.

Source: 2024/2025 mark schemes — verbatim "appropriate messages" + "comments to explain the purpose"

Trap 3 · Confusing 1D vs 2D from the wording

Reading fast, you miss the "(2D)" tag. Your DECLARE has one dimension. Your loops don't nest. You lose the whole data-structures axis.

Source: recurring — 2024 s24 examiner report

Trap 4 · Assuming arrays are 0-indexed

Python and most modern languages start arrays at 0. Cambridge Pseudocode starts at 1. FOR i ← 0 TO ClassSize is off by one at both ends.

Source: 0478 syllabus convention

Trap 5 · Missing the "additional guidance" block

At the end of every scenario is a small block about pre-declared arrays, initialisation not needed, or message requirements. Miss it and you re-declare arrays that were supposed to be assumed, wasting time and clarity.

Source: 2024 s24 examiner report (verbatim) — "followed the remaining additional guidance at the end of the scenario"

Trap 6 · Confusing scenario variables with your own

You invent your own variable names (MyCounter, Total) when the scenario names them (MatchNo, ClassSize). Rename penalty.

Source: 2025 s25 P22 Q10 examiner report — "correctly used all the data structures given in the scenario"
§6 · Quick predict-then-reveal (4 items)
Q1 · Scenario says "the 2D array ScreenTime[] holds daily minutes for each student". What DECLARE do you write?
DECLARE ScreenTime : ARRAY[1:ClassSize, 1:7] OF INTEGER — two dimensions, integer, using given name.
Q2 · Requirement bullet says "input daily minutes for each student". What IPO categories does that imply?
✅ INPUT (student enters value) and PROCESS (loop over students × days). Validation is implicit — always required.
Q3 · Requirement says "output the student with the lowest weekly total". Output one name or all matching?
✅ All matching. Multiple students can share the minimum. The 2025 s25 examiner report flags this as a recurring trap.
Q4 · Is IF Score < 0 OR Score > 100 THEN INPUT Score correct validation?
✅ No — IF only allows ONE retry. Correct validation uses WHILE or REPEAT to retry until valid. This is the killer 2025 s25 P22 Q11 examiner-cited trap.

💡 Learn tab in one line

Read like an examiner. See the scenario as a spec.

🎓 What next

Head to Activities — five drills, with the signature Scenario Reader at the top.

🎮 Scenario Reader + 4 partner drills

Five drills. The signature is Scenario Reader — highlight-and-tag phrases in real Paper 2 stems. Behind it: four partner drills that isolate the four sub-skills — IPO sorting, data structure spotting, requirement extraction, and 60-second sprint.

Progressive disclosure: Scenario Reader Free mode unlocks after 3 completed Guided scenarios.

⌨️ Keyboard: Tab to select a phrase, then use the tag toolbar buttons. Arrow keys within IPO table cells. Sprint answers with digits/letters as prompted.

1 · 📖 Scenario Reader (signature)

IPO table

InputsProcessesOutputs

Requirements checklist

2 · ⚡ IPO Speed Sort

Tap each phrase to place it in Input, Process, or Output. Immediate feedback per tap.

Inputs

Processes

Outputs

3 · 🔍 Data Structure Spotter

Read a scenario excerpt. Tap the correct dimension (1D or 2D) plus the array name.

4 · 📋 Requirement Extractor

Tap each bulleted requirement in the stem. Miss the implicit ones (validation/messages/comments) and you lose the "all criteria covered" axis.

5 · ⚡ 60-second Sprint

Rapid recall: IPO signals · 1D-vs-2D detection · requirement counting. Weak skills surface 2× more often.

60Seconds
0Correct
0Streak

📇 Scenario deck

8 scenarios · 6 from real Paper 2, 1 from textbook, 1 synthetic.

🎯 Skill coverage

💡 Drill guide

1 · Scenario Reader — signature. Full stem, tag phrases, marker returns coverage + accuracy.

2 · Speed Sort — isolate the IPO categorisation reflex.

3 · Structure Spotter — isolate the 1D-vs-2D reflex.

4 · Requirement Extractor — count the bullets + implicit reqs.

5 · Sprint — 60s rapid recall on all three sub-skills.

✎ Practice — 18 adaptive MCQs

Distributed across the four reading skills: IPO identification (6), data structure spotting (4), requirement extraction (4), implicit requirements (4). Adaptive: weak skills surface 2× more often.

🧪 Practice Exam Mode ON. Recall the answer, then reveal + self-mark.

📊 Practice stats

0Attempts
Accuracy

🎯 Weakest skills

📋 Exam pool — 12 Paper 2 cited items

Real Cambridge Paper 2 Q11 scenarios from 2023-2025, plus textbook cases. Every citation verified against source. Answer, then reveal the mark-scheme checklist.

📋 Exam stats

0Attempts
Average mark

🔄 Review — 10 traps + 6 memory triggers

The traps here are the ones examiner reports flag repeatedly across 2023-2025. Read this tab the morning of the exam.

Examiner-cited & source-cited traps

🧠 Memory triggers

Six one-liners. Recite these before your exam.

🎯 Your weakest skills

💔 Your logged mistakes

🏆 Mastery — 12-item revision checklist

Tick each item as you internalise it. Tap the status pill on a skill to override the automatic marker. When all 12 are ticked, the Module Mastered banner appears.

🏆 Module Mastered · Lab A · Read complete. Move on to Lab B.

Revision checklist

Skill-by-skill mastery

📊 Overview

0Skills attempted
0Skills mastered

Next step

Once all 12 checked → Lab B · Build (Forge). Assemble reusable technique blocks.

💔 Mistakes

Your mistakes log

Every wrong answer captures here automatically.

📊 Progress

Progress dashboard

Your attempts, accuracy, and mastery counts across Lab A.

Practice

0Attempts
Accuracy

Exam

0Attempts
Average

Focus recommendation

Weakest skills

🔖 Bookmarks

Bookmarked questions

📝 My Notes

Personal notes + feedback

Add a note

Report feedback

Spotted something wrong or unclear? Log it here.

Quick stats

0Notes saved
0Feedback items
🗄️ Vault

Your knowledge vault

Saved ✓