Quick answer

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

Close-up of Python code on a screen highlighting indentation levels inside a loop

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.

💡
Coding tipWhen Python throws an "IndentationError," tell your child to count spaces, not guess — have them place the cursor at the start of the line above and the line that's failing, and compare exactly how many spaces precede each.

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.

48%
of beginner "code won't run" errors trace to indentation or missing colons
31%
trace to genuine logic errors, not syntax
3
Cambridge Lower Secondary stages that build Python skills progressively
"If the logic is right and the code still fails, you're not looking at a thinking problem — you're looking at a typing problem." Snehal Patel

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.

View booster →

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.

StageWhat's introducedTypical logic-vs-syntax gap
Stage 7Flowcharts, selection, first introduction to PythonCan describe selection in a flowchart but mistypes if/elif/else syntax
Stage 8Pseudocode, conditional statements, working with data in programsCorrect pseudocode logic, but variable and data-type errors in the Python version
Stage 9Iteration, loops, data structures, comparing algorithmsUnderstands what a loop should do, but off-by-one errors in range() values

Key takeaways

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.

  1. 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.
  2. 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.
  3. Isolate the error message. When Python throws an error, find the exact line number it points to before changing anything else in the code.
  4. 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

  1. Cambridge Assessment International Education, "Cambridge Lower Secondary Computing Curriculum Framework," cambridgeinternational.org.
  2. ACM Transactions on Computing Education, "Notional Machines and Introductory Programming Education," dl.acm.org/journal/toce.
  3. Raspberry Pi Foundation, "Computing at School — Pedagogy Quick Reference Guide," raspberrypi.org.

Fact-checked and last updated July 5, 2026 by Snehal Patel.

SP

Snehal Patel

Parent · Cambridge curriculum · Founder of CoreMark

Parent of a Cambridge Lower Secondary student and founder of CoreMark. Snehal built CoreMark to solve the problem she kept running into: plenty of practice material, but none of it targeting the one topic her child was actually stuck on.

#python #programming #computational-thinking #stage-7-8-9
📐

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 →