Staffroom
Lesson Plans/Computing/Year 6/Programming for Real-World Problems
Year 6ComputingKS2

Programming for Real-World ProblemsYear 6 Lesson Plan

National Curriculum: Computing KS2 — design, write and debug programs that accomplish specific goals, decomposing problems into smaller parts; use sequence, selection, repetition, and variables in programs; use logical reasoning to detect and correct errors in algorithms and programs.

Overview

Pupils tackle a programming challenge of genuine complexity, applying decomposition and abstraction to plan a solution before writing any code. Working in small groups, they divide a larger problem into sub-problems, design algorithms for each component using pseudocode and flowcharts, and then build and integrate the components in Scratch. Structured peer evaluation against a written specification completes the cycle, developing the ability to plan, create, test, and reflect — the full software development process at a primary level.

Learning Objectives

  • Apply decomposition to break a complex problem into smaller, manageable sub-problems.
  • Use abstraction to identify the key features of a problem and ignore unnecessary detail.
  • Design algorithm components using pseudocode and flowcharts before coding.
  • Evaluate a completed program against a specification and suggest evidence-based improvements.

Key Vocabulary

decomposition
Breaking a large, complex problem into smaller, more manageable parts.
abstraction
Focusing on the important details of a problem and ignoring the ones that do not matter.
pseudocode
A plain-language description of an algorithm that is not written in a specific programming language.
component
A separate part of a larger program that does one specific job.
specification
A written description of exactly what a program must do, used to design and evaluate it.
integrate
To combine separate components into one working whole.

Suggested Lesson Structure

10m
Warm-up

Present a real-world problem: design a school library system that lets pupils search for books, check whether they are available, and record who has borrowed them. Ask: where would you even start? Pupils discuss in groups for two minutes. Collect responses. Introduce decomposition: instead of solving everything at once, break it into parts — search function, availability checker, borrower record. Stress that professional software developers do exactly this.

20m
Teaching input

Model decomposition and abstraction using a simpler Scratch project context: a quiz game. Show a completed specification card listing what the program must do (ask 5 questions, keep score, show a result at the end). Decompose into components: question-and-answer module, score tracker, results display. Sketch pseudocode for the score tracker ('set score to 0; when correct answer chosen: change score by 1'). Draw the flowchart for the question module. Explain abstraction: we do not need to worry about how the score is displayed while we are writing the question module — we separate concerns.

15m
Guided practice

Groups of three are given a project brief for a Scratch program (e.g. a simple adventure game or interactive story with branching choices). They complete a planning document together: decompose the brief into at least three components, assign one component per group member, and write pseudocode for their own component. Groups share their plans with another group for feedback: is the decomposition logical? Is there anything missing from the specification?

10m
Independent practice

Each pupil begins building their assigned component in Scratch, testing it independently before the group integrates the components in a follow-up lesson. They annotate their code using Scratch comment blocks to explain what each section does.

5m
Plenary

Discuss the integration challenge: what happens when two components need to share information (e.g. the score variable used in both the quiz module and the results display)? Introduce the idea that in professional programming, teams agree on shared data formats before building separately. Ask: how could your group agree on shared variables before the next lesson? Summarise: decomposition allows people to work in parallel; abstraction keeps each part focused; integration is where it all comes together.

Common Misconceptions

  • Pupils often want to start coding immediately and see planning as unnecessary — draw attention to cases where unplanned programs become impossible to debug; the planning stage prevents far more time being lost later.
  • Some pupils treat decomposition as simply dividing the coding work equally rather than identifying logical sub-problems — stress that components should each have a clear, single purpose.

Prior Knowledge

Pupils should already be able to:

  • Ability to build Scratch programs using sequences, loops, selection, and variables.
  • Experience using flowcharts to plan algorithms in Year 4 and Year 5.

Want a personalised version of this lesson?

Use Staffroom to generate a complete lesson plan tailored to your class — add context about ability, recent learning, or specific pupils and get a plan ready to teach. Free trial, no card required.

Try Staffroom free →