Skip to content
9618Paper 2 · Fundamental Problem-solving and Programming Skills§9.1, §9.2

9. Algorithm Design and Problem-Solving

Computational thinking (abstraction, decomposition), identifier tables, pseudocode with the three basic constructs, structured English and flowcharts (and converting between them), stepwise refinement and logic statements.

Statometer46RegularNext Paper 269%
Marks a paper8.9 · 12%Rank#11 of 12 · #3 on P2Trend · last 12Oct/Nov 24 · 21: 0 marksOct/Nov 24 · 22: 0 marksOct/Nov 24 · 23: 7 marksMay/Jun 25 · 21: 24 marksMay/Jun 25 · 22: 0 marksMay/Jun 25 · 23: 9 marksOct/Nov 25 · 21: 0 marksOct/Nov 25 · 22: 6 marksOct/Nov 25 · 23: 8 marksMay/Jun 26 · 21: 6 marksMay/Jun 26 · 22: 5 marksMay/Jun 26 · 23: 4 marks
7 in 10 chance in the next paper

Everything for this topic — study hub

AS Level · 9618 · Paper 2

Statometer — what 33 real papers say about this topic and each of its 3 syllabus bullets

Regular · #11 of 12 in AS Level · recomputed with every new session

46REGULAR
Regular#11 of 12 in AS Level#3 on Paper 2 Easing

Comes up most sessions for a few marks — know the definitions and one worked example.

Next Paper 2
69%
7 in 10 chance it is set
Marks a paper
8.9 / 75
12% of Paper 2 · fair share 25%
Appeared in
23 / 33
Paper 2 sittings 20212026
Last set
May/Jun 2026
9618/23 · Q4 · 4 marks · 11-series streak
Marks in each of the last 12 Paper 2 sittingsOct/Nov 24May/Jun 26
Oct/Nov 24 · 21: 0 marksOct/Nov 24 · 22: 0 marksOct/Nov 24 · 23: 7 marksMay/Jun 25 · 21: 24 marksMay/Jun 25 · 22: 0 marksMay/Jun 25 · 23: 9 marksOct/Nov 25 · 21: 0 marksOct/Nov 25 · 22: 6 marksOct/Nov 25 · 23: 8 marksMay/Jun 26 · 21: 6 marksMay/Jun 26 · 22: 5 marksMay/Jun 26 · 23: 4 marks

What the papers say

  • Set in 23 of 33 Paper 2 sittings — about 7 papers in 10.
  • Worth about 8.9 marks a paper (12% of Paper 2, well under its fair share of 25%).
  • Last set May/Jun 2026 · 9618/23 · Q4 for 4 marks — in the most recent series.
  • Set in each of the last 11 series without a miss.
  • Easing off: about 13.8 marks a paper earlier, 6.7 in the latest years — still examined, just smaller.
  • Lives on “Complete” and “Identify” — 68% of its questions: you must produce something — code, a diagram, a table — practise doing it, not reading it.
  • 68% of its questions involve a diagram, table or figure — practise with pen and paper.
  • 60% of its questions are set out as code, pseudocode or a table to complete.
  • Its biggest question so far: 27 marks (May/Jun 2023 · 9618/21 · Q4).
  • Inside the topic, §9.2 Algorithms carries the most marks (55%) and §9.2 Documenting and converting the least (22%).
  • It is examined mostly as AO2 (Apply & analyse, 58%), the rest AO3 (42%) — you must apply it to the given data or scenario — work it out, trace it, explain it in context.
  • The examiner has commented on 30 of its questions — read “What the examiner said” before you practise.

Command words

Share of questions using the word (a question can use several). What each wants →

Question shapes

  • ≤ 6 mk11
  • 7–9 mk14
  • 10–12 mk10
  • 13–15 mk4
  • 16+ mk1

Average 8.9 marks a question · 68% with a figure or table · 60% with code · biggest 27 marks

Assessment objectives — how it is examined

Every part of every current-syllabus question filed under Cambridge's AO1 / AO2 / AO3 (from its command word and what it asks you to do), so you know whether this topic pays for definitions, for applying, or for judging and building.

  • AO1 Knowledge & understanding
  • AO2 Apply & analyse
  • AO3 Design, program & evaluate

Paper 2 as a whole

Paper 2SyllabusMeasured
AO1 Knowledge & understanding0%0%
AO2 Apply & analyse40%46%
AO3 Design, program & evaluate60%54%

Syllabus = Cambridge's grid; measured = the bank's current-syllabus papers.

Inside the topic — every syllabus bullet, measured

Each part of each question is filed under the bullet it examines; the numbers are per Paper 2 sitting, exactly like the topic's. Open a bullet for its own Statometer.

  • 9.1Computational thinking skills#12 of 14 on Paper 2Occasional · 2739% next paper1.5 marks13/33 sittings May/Jun 2026

    Rotated in occasionally — the bullet students skip and then meet.Syllabus: abstraction (need, benefits, building an abstract model) and decomposition into sub-problems that become program modules

    Next Paper 2
    39%
    2 in 4
    Marks a paper
    1.5
    2% of the paper · 23% of the topic
    Asked in
    13 / 33
    Paper 2 sittings · 13 questions
    Last asked
    May/Jun 2026
    9618/22 · Q2 · 1 marks · 3-series streak
    • Asked in 13 of 33 Paper 2 sittings — roughly one paper in 3.
    • About 1.5 marks a paper (2% of Paper 2; 23% of the topic's marks across its 3 bullets).
    • Last asked May/Jun 2026 · 9618/22 · Q2 (1 marks) — in the most recent series.
    • Usually “Complete” or “Identify”: you must produce something — code, a diagram, a table — practise doing it, not reading it.
    • Biggest chunk of marks so far: 9 in May/Jun 2022 · 9618/22 · Q3.
    • It is examined mostly as AO2 (Apply & analyse, 60%), the rest AO3 (40%) — you must apply it to the given data or scenario — work it out, trace it, explain it in context.
    Last 12 sittings Steady
    Oct/Nov 24 · 21: 0 marksOct/Nov 24 · 22: 0 marksOct/Nov 24 · 23: 0 marksMay/Jun 25 · 21: 3 marksMay/Jun 25 · 22: 0 marksMay/Jun 25 · 23: 8 marksOct/Nov 25 · 21: 0 marksOct/Nov 25 · 22: 5 marksOct/Nov 25 · 23: 0 marksMay/Jun 26 · 21: 0 marksMay/Jun 26 · 22: 1 marksMay/Jun 26 · 23: 0 marks

    Assessment objectives

    • AO1 Knowledge & understanding
    • AO2 Apply & analyse
    • AO3 Design, program & evaluate
    • Complete62%
    • Identify54%
    • Explain39%
    • Describe31%
  • 9.2Algorithms#8 of 14 on Paper 2Core · 5564% next paper3.9 marks21/33 sittings May/Jun 2026

    A regular earner inside the topic — most papers touch it.Syllabus: an algorithm as a sequence of steps; identifier tables; pseudocode with input, process and output using sequence, selection and iteration

    Next Paper 2
    64%
    6 in 10
    Marks a paper
    3.9
    5% of the paper · 55% of the topic
    Asked in
    21 / 33
    Paper 2 sittings · 27 questions
    Last asked
    May/Jun 2026
    9618/23 · Q4 · 4 marks · 11-series streak
    • Asked in 21 of 33 Paper 2 sittings — about 6 papers in 10.
    • About 3.9 marks a paper (5% of Paper 2; 55% of the topic's marks across its 3 bullets).
    • Last asked May/Jun 2026 · 9618/23 · Q4 (4 marks) — in the most recent series.
    • Asked in each of the last 11 series.
    • Usually “Identify” or “Complete”: short, precise answers in syllabus words.
    • Biggest chunk of marks so far: 15.5 in May/Jun 2023 · 9618/21 · Q4.
    • It is examined mostly as AO3 (Design, program & evaluate, 55%), the rest AO2 (45%) — you must build it — write the pseudocode or program, design the structure.
    Last 12 sittings Steady
    Oct/Nov 24 · 21: 0 marksOct/Nov 24 · 22: 0 marksOct/Nov 24 · 23: 7 marksMay/Jun 25 · 21: 11 marksMay/Jun 25 · 22: 0 marksMay/Jun 25 · 23: 0 marksOct/Nov 25 · 21: 0 marksOct/Nov 25 · 22: 1 marksOct/Nov 25 · 23: 2 marksMay/Jun 26 · 21: 5 marksMay/Jun 26 · 22: 2 marksMay/Jun 26 · 23: 4 marks

    Assessment objectives

    • AO1 Knowledge & understanding
    • AO2 Apply & analyse
    • AO3 Design, program & evaluate
    • Identify44%
    • Complete37%
    • Write33%
    • Explain22%
  • 9.2Documenting and converting#13 of 14 on Paper 2Occasional · 1926% next paper1.2 marks10/33 sittings Oct/Nov 2025

    Rotated in occasionally — the bullet students skip and then meet.Syllabus: structured English, flowcharts and pseudocode (writing one from another); stepwise refinement; logic statements

    Next Paper 2
    26%
    1 in 4
    Marks a paper
    1.2
    2% of the paper · 22% of the topic
    Asked in
    10 / 33
    Paper 2 sittings · 10 questions
    Last asked
    Oct/Nov 2025
    9618/23 · Q2 · 6 marks · 1 series ago
    • Asked in 10 of 33 Paper 2 sittings — roughly one paper in 3.
    • About 1.2 marks a paper (2% of Paper 2; 22% of the topic's marks across its 3 bullets).
    • Last asked Oct/Nov 2025 · 9618/23 · Q2 (6 marks), 1 series ago.
    • Easing: 2.5 → 0.6 marks a paper.
    • Usually “Identify” or “Write”: short, precise answers in syllabus words.
    • Biggest chunk of marks so far: 12 in Oct/Nov 2021 · 9618/21 · Q2.
    • It is examined almost entirely as AO3 (Design, program & evaluate, 82%) — you must build it — write the pseudocode or program, design the structure.
    Last 12 sittings Easing
    Oct/Nov 24 · 21: 0 marksOct/Nov 24 · 22: 0 marksOct/Nov 24 · 23: 0 marksMay/Jun 25 · 21: 0 marksMay/Jun 25 · 22: 0 marksMay/Jun 25 · 23: 0 marksOct/Nov 25 · 21: 0 marksOct/Nov 25 · 22: 0 marksOct/Nov 25 · 23: 6 marksMay/Jun 26 · 21: 0 marksMay/Jun 26 · 22: 0 marksMay/Jun 26 · 23: 0 marks

    Assessment objectives

    • AO1 Knowledge & understanding
    • AO2 Apply & analyse
    • AO3 Design, program & evaluate
    • Identify60%
    • Write50%
    • Give40%
    • Draw30%

32% of the topic's marks sit in question parts that belong to another topic (scenario questions cross sections) or that no bullet claims; they count for the topic, not for a bullet.

Marks a paper, year by year

212223242526

By exam series

  • May/Jun12/18 · 9.8 mk
  • Oct/Nov11/15 · 11.9 mk

What you need to know3syllabus §9.1, §9.2

  1. 9.1Computational thinking skillsabstraction (need, benefits, building an abstract model) and decomposition into sub-problems that become program modules
  2. 9.2Algorithmsan algorithm as a sequence of steps; identifier tables; pseudocode with input, process and output using sequence, selection and iteration
  3. 9.2Documenting and convertingstructured English, flowcharts and pseudocode (writing one from another); stepwise refinement; logic statements

Video lectures15ZAK's YouTube channel · play here

  • ASA22024642 views

  • ASA22024291 views

  • AS2023298 views

  • ASA220211.9K views

  • AS20211.8K views

  • AS20215.7K views

Infographics2draw these the way the examiner expects · download as PNG

Flowchart symbolsUse exactly these shapes. Every decision has two labelled exits; flow lines carry arrows; one START, oneSTOP.TerminatorSTART / STOPProcessTotal ← Total + NInput / OutputINPUT N · OUTPUT TotalDecisionN > 0 ? → Yes / NoSubroutinepredefined process / callflow line (arrow)STARTINPUT NumNum > 0 ?YesOUTPUT "Positive"NoOUTPUT "Not +"STOPProgram development life cycleAnalysisDesignCodingTestingAnalysis (abstraction, decomposition → requirements) · Design (structure diagram, flowchart, pseudocode) · Coding · Testingcswithzak.com

Flowchart symbols & the PDLC

O LevelAS
Stepwise refinement & identifier tables§9.2: plan the identifiers first, then break the problem into steps until each one is a singlepseudocode line. Paper 2 marks the design as well as the code.1 · Problem statementRead 20 marks, count how many are50 or more and output the average.Marks below 0 or above 100 are rejected.2 · Identifier tableIdentifierData typeDescriptionMarkINTEGERone mark, 0–100TotalINTEGERrunning sum of marksPassesINTEGERcount of marks ≥ 50CountINTEGERloop counter 1–20Logic statementsMark >= 0 AND Mark <= 100Mark >= 50Count <= 20Relational (=, <>, <, >, <=, >=) + Boolean (AND, OR, NOT) → TRUE / FALSE3 · Stepwise refinementProcess 20 marks and reportInitialiseTotal, PassesLoop 20×input, check, addReportPasses, Total / 20INPUT MarkIF Mark valid THEN Total ← Total + Mark IF Mark >= 50 THEN Passes ← Passes + 1ELSE OUTPUT "rejected"4 · Pseudocode — sequence · selection · iterationTotal ← 0 : Passes ← 0 // sequenceFOR Count ← 1 TO 20 // iteration INPUT Mark IF Mark >= 0 AND Mark <= 100 THEN // selection Total ← Total + Mark IF Mark >= 50 THEN Passes ← Passes + 1 ENDIF ENDIFNEXT Count : OUTPUT Passes, Total / 20cswithzak.com

Stepwise refinement & identifier tables

AS

Browse all infographics →

Key terms12use these exact words in the exam

abstractiondecompositionidentifier tablestructured Englishflowchartpseudocodesequenceselectioniterationstepwise refinementlogic statementmodule

Dotted terms are defined in the glossary.

Code help4referenced to the Cambridge pseudocode guide

Stack with an array (push/pop)

pseudocode §3, §8.1 Run in Playground
DECLARE Stack : ARRAY[1:5] OF INTEGER
DECLARE Top : INTEGER
Top 0
PROCEDURE Push(V : INTEGER)
IF Top = 5 THEN
OUTPUT "Stack full"
ELSE
Top Top + 1
Stack[Top] V
ENDIF
ENDPROCEDURE
FUNCTION Pop() RETURNS INTEGER
DECLARE V : INTEGER
IF Top = 0 THEN
OUTPUT "Stack empty"
RETURN -1
ENDIF
V Stack[Top]
Top Top - 1
RETURN V
ENDFUNCTION
CALL Push(10)
CALL Push(20)
CALL Push(30)
OUTPUT Pop(), " ", Pop(), " ", Pop(), " ", Pop()

Circular queue with an array

pseudocode Run in Playground
CONSTANT Size = 4
DECLARE Q : ARRAY[0:3] OF STRING
DECLARE Front, Rear, Count : INTEGER
Front 0
Rear -1
Count 0
PROCEDURE Enqueue(V : STRING)
IF Count = Size THEN
OUTPUT "Queue full"
ELSE
Rear (Rear + 1) MOD Size
Q[Rear] V
Count Count + 1
ENDIF
ENDPROCEDURE
FUNCTION Dequeue() RETURNS STRING
DECLARE V : STRING
IF Count = 0 THEN
RETURN "(empty)"
ENDIF
V Q[Front]
Front (Front + 1) MOD Size
Count Count - 1
RETURN V
ENDFUNCTION
CALL Enqueue("A")
CALL Enqueue("B")
OUTPUT Dequeue()
CALL Enqueue("C")
CALL Enqueue("D")
CALL Enqueue("E")
OUTPUT Dequeue(), Dequeue(), Dequeue(), Dequeue()

Binary search (iterative)

pseudocode Run in Playground
DECLARE A : ARRAY[1:8] OF INTEGER
DECLARE Low, High, Mid, Target, i : INTEGER
DECLARE Found : BOOLEAN
FOR i 1 TO 8
A[i] i * 3 // 3 6 9 12 15 18 21 24 (sorted)
NEXT i
Target 18
Low 1
High 8
Found FALSE
WHILE Low <= High AND NOT Found
Mid (Low + High) DIV 2
IF A[Mid] = Target THEN
Found TRUE
ELSE
IF A[Mid] < Target THEN
Low Mid + 1
ELSE
High Mid - 1
ENDIF
ENDIF
ENDWHILE
OUTPUT "Found: ", Found, " at ", Mid

Insertion sort

pseudocode Run in Playground
DECLARE A : ARRAY[1:6] OF INTEGER
DECLARE i, j, Key : INTEGER
A[1] 9
A[2] 4
A[3] 7
A[4] 1
A[5] 8
A[6] 2
FOR i 2 TO 6
Key A[i]
j i - 1
WHILE j >= 1 AND A[j] > Key
A[j + 1] A[j]
j j - 1
ENDWHILE
A[j + 1] Key
NEXT i
FOR i 1 TO 6
OUTPUT A[i]
NEXT i

💡 The WHILE condition relies on short-circuit AND (j >= 1 checked first) — the Playground does this like most languages.

Playground examples19runnable programs for this topic

  • Swap two variables

    The three-line swap with a temporary variable — a favourite trace-table question.

    O LevelASPseudocodeBasics & data types §1.5
    Run
  • Maximum, minimum & average

    The standard algorithm: start Highest very low and Lowest very high, then update as you go.

    O LevelASPseudocodeIteration 2210 §7.1 standard methods
    Run
  • Counting — how many passed?

    Two counters updated inside a loop, then a percentage.

    O LevelASPseudocodeIteration 2210 §7.1 standard methods
    Run
  • Total, average and position of the maximum

    Keep the index of the best value, not just the value, so you can say where it was.

    O LevelASPseudocodeArrays §3.2
    Run
  • Stepwise refinement — a bank menu built from modules

    The main program only shows the menu and CALLs procedures; each module does one job (a structure chart in code).

    ASPseudocodeProcedures & functions §8.1 · 9618 §9.1
    Run
  • Linear search

    Check each element in turn and stop as soon as the target is found.

    O LevelASPseudocodeSearching 2210 §7.1 / 9618 §9.2
    Run
  • Linear search — every match

    Do not stop at the first hit: report every position and count them.

    O LevelASPseudocodeSearching 2210 §7.1
    Run
  • Binary search (iterative)

    Only works on sorted data: halve the search range each time by comparing with the middle element.

    ASA2PseudocodeSearching 9618 §19.1
    Run
  • Bubble sort

    Compare neighbours and swap; after each pass the largest value has bubbled to the end.

    O LevelASPseudocodeSorting 2210 §7.1 / 9618 §9.2
    Run
  • Bubble sort with a Swapped flag

    Stop early when a whole pass makes no swaps — the efficient version examiners like.

    ASA2PseudocodeSorting 9618 §9.2, §19.1
    Run
  • Insertion sort

    Take each value in turn and slide it left into the sorted part of the array.

    ASA2PseudocodeSorting 9618 §19.1
    Run
  • Sort names alphabetically

    Bubble sort works on strings too: "Ali" < "Zara" compares character codes.

    O LevelASPseudocodeSorting 2210 §7.1
    Run
  • Sort parallel arrays — a leaderboard

    Sort marks descending and swap the names at the same time so they stay matched.

    ASPseudocodeSorting 9618 §9.2, §10.2
    Run
  • AS Paper 2 — library loans

    An array of records, a search function, procedures for borrowing and reporting, all driven by a menu.

    ASPseudocodeExam-style tasks §4.2, §8
    Run
  • Totalling, counting, max, min, average

    The standard loop pattern with a list — and then the built-ins sum(), max(), min(), len() that do it in one line.

    O LevelASPythonIteration §7.1 ↔ Python
    Run
  • Linear search

    Walk the list until you find the target — the exam wants the loop, not list.index().

    O LevelASPythonSearching §7 ↔ Python
    Run
  • Binary search — iterative and recursive

    Halve the search space each time; the list must be sorted. Both versions, with the number of comparisons.

    ASA2PythonSearching §7 ↔ Python
    Run
  • Bubble sort with a swapped flag

    The classic Paper 2 / Paper 4 sort. Open the Trace tab to watch the swaps.

    O LevelASPythonSorting §7 ↔ Python
    Run
  • Insertion sort

    Take each item and slide it left into the sorted part. Compare with sorted() and .sort() at the end.

    ASA2PythonSorting §7 ↔ Python
    Run

Test yourself

Ready to check you know it?

Every round is a fresh random draw, weak cards come back until you get them right, and past-paper questions come with their mark schemes. Marks earn XP on your dashboard.

Enroll nowOnline classes