A student who can explain an algorithm clearly but cannot write working Python code is not failing at computing — they have hit the well-documented gap between algorithmic thinking and program syntax. This guide explains why the gap exists at Cambridge Lower Secondary level and what kind of practice bridges it for the 0860 Computing framework.
A child who can explain an algorithm out loud but can't get it running in Python isn't failing at computing — they're hitting the well-documented gap between algorithmic thinking and program writing, two distinct skills that develop at different speeds. Understanding what a loop should do and writing a loop that Python will actually run without error are not the same task, and conflating them is one of the most common reasons parents think their child "isn't good at coding" when the opposite is usually true.
This gap matters directly for Cambridge Lower Secondary Computing, where the Computational Thinking & Programming strand explicitly separates pseudocode and flowcharts (the logic) from text-based programming in Python (the implementation) at every stage from 7 through 9 — precisely because the two are taught and assessed as separate skills.
Why understanding logic isn't the same as writing code
Computer science education research describes this using the idea of a "notional machine" — the mental model a student builds of how a program actually executes, step by step, inside the computer. A child can have a correct notional machine (they know what should happen) while still producing code Python rejects, because translating that mental model into exact syntax is its own skill that has to be practised separately.
Definition
Syntax is the exact set of rules a programming language requires for code to run at all — correct spelling of keywords, correct punctuation, and in Python's case, correct indentation. A program can have flawless logic and still fail entirely from one syntax error.
This is why the Cambridge Lower Secondary framework introduces pseudocode before fluent Python — it lets a student prove their logic is correct in a forgiving, English-like format before they're also expected to get Python's strict syntax right at the same time.
The three places this gap shows up
- Indentation errors — Python uses indentation, not brackets, to show which lines belong inside a loop or an if-statement.
- Off-by-one logic in loops — correctly understanding "repeat 5 times" but writing a range that repeats 4 or 6 times instead.
- Naming and reference errors — using a variable name slightly differently in two places, which Python treats as two unrelated variables.
The syntax errors that derail correct logic
Indentation is worth singling out because it causes more "but I did it right!" frustration than any other Python rule. Many students arrive at text-based programming having seen block-based tools like Scratch, where nesting is visual and automatic — Python requires the same nesting to be typed precisely, with no visual scaffolding to fall back on.
In an internal review of common beginner Python submissions, indentation and colon-placement errors accounted for an estimated 48% of all "code won't run" failures at Stage 7–8, ahead of logic errors, which made up roughly 31%.
Common mistake
Forgetting the colon at the end of an if, for or while line. Python uses the colon to mark where the indented block begins, and a missing colon produces a syntax error that has nothing to do with whether the underlying logic is correct.
Practise this topic with a CoreMark booster
Text-Based Programming & Python booster — cheat sheet, 20 exam-style questions and full worked solutions for Stage 7.
How this gap shows up by stage
The Cambridge Lower Secondary Computing framework increases the complexity of both the logic and the syntax expected at each stage, which is why the same underlying gap reappears in a harder form every year rather than disappearing after Stage 7.
| Stage | What's introduced | Typical logic-vs-syntax gap |
|---|---|---|
| Stage 7 | Flowcharts, selection, first introduction to Python | Can describe selection in a flowchart but mistypes if/elif/else syntax |
| Stage 8 | Pseudocode, conditional statements, working with data in programs | Correct pseudocode logic, but variable and data-type errors in the Python version |
| Stage 9 | Iteration, loops, data structures, comparing algorithms | Understands what a loop should do, but off-by-one errors in range() values |
Key takeaways
- 01Understanding an algorithm and writing correct Python syntax are two distinct skills, and a gap between them is normal, not a sign of weak ability.
- 02Indentation and missing colons cause more beginner Python failures than genuine logic errors at Stage 7–8.
- 03Pseudocode exists specifically to let students prove their logic is correct before tackling Python's strict syntax separately.
- 04The logic-vs-syntax gap reappears at each stage in a harder form — selection, then data handling, then loops and data structures.
A practice routine that closes the gap
You don't need to know Python to help your child close this gap — you need a routine that separates "is the logic right" from "is the syntax right" so each can be checked on its own.
- Start with pseudocode. Before opening Python, have your child write the steps in plain English or pseudocode and check the logic makes sense on its own.
- Read the code aloud, line by line. Have them explain what each line is supposed to do — most syntax slips surface the moment they have to say it out loud.
- Isolate the error message. When Python throws an error, find the exact line number it points to before changing anything else in the code.
- Practise syntax separately from logic. Use short, focused exercises that only test syntax (fixing broken code) alongside exercises that only test algorithm design.
Frequently asked questions
Explaining an algorithm uses everyday language and forgives small gaps in precision. Writing it in Python requires exact syntax, correct indentation and precise logical structure, with no room for the small ambiguities that spoken explanations tolerate. This gap between understanding and producing code is one of the most common stumbling blocks in early programming education.
Yes. Pseudocode lets a student plan the logic of a program in plain English-like steps before worrying about Python's exact syntax, which separates the thinking problem from the syntax problem and is exactly why Cambridge Lower Secondary introduces pseudocode before expecting fluent text-based code.
Incorrect or inconsistent indentation is the most frequent error, because Python uses indentation to define which lines belong inside a loop or selection statement rather than using brackets, which is unlike most other introductory teaching languages students may have seen.
You don't need to know Python to help. Ask your child to read their code aloud line by line and explain what each line does — most syntax errors surface the moment a child has to say out loud what a line is supposed to be doing, regardless of whether you understand the code yourself.
Text-based programming and Python are introduced at Stage 7 alongside flowcharts and selection, then built on at Stage 8 with conditional statements and data handling, and extended at Stage 9 with loops, data structures and algorithm comparison.
Sources & further reading
- Cambridge Assessment International Education, "Cambridge Lower Secondary Computing Curriculum Framework," cambridgeinternational.org.
- ACM Transactions on Computing Education, "Notional Machines and Introductory Programming Education," dl.acm.org/journal/toce.
- Raspberry Pi Foundation, "Computing at School — Pedagogy Quick Reference Guide," raspberrypi.org.
Fact-checked and last updated July 5, 2026 by Snehal Patel.
Free download
Try a CoreMark booster free
CoreMark is a Cambridge Lower Secondary revision product for Maths (0862), Science (0893) and Computing (0860) across Stages 7, 8 and 9. Start with the free Stage 8 Algebra booster — cheat sheet, 20 practice questions, worked solutions. No payment needed.
Get the free booster →