Pilot
Pilot lessons and labs
Each lesson has a worked example, common misconceptions, guided and independent tasks, an exit check and practice items you can check yourself. Labs build on the lessons with a prediction, a starter, tests and a reflection.
Lessons
- L01 · 50 min · Topics 1.1, 1.2, 1.3Designing a useful programCompare two club-finder briefs, separate the user need from features and internal details, describe a program by purpose, inputs and outputs, and justify a revision with evidence from users.
- L02 · 50 min · Topics 3.1, 3.3, 3.4Variables, expressions and textPredict and trace short programs that assign, copy and update variables, evaluate arithmetic using precedence and MOD, and apply a supplied string operation exactly as defined.
- L03 · 50 min · Topics 3.5, 3.6, 3.7Decisions and Boolean reasoningEvaluate compound Boolean conditions, trace IF, IF ELSE and nested conditionals, and test a club eligibility checker at its boundaries to expose an OR that should be AND.
- L04 · 60 min · Topics 1.4, 3.8, 3.9Iteration, debugging and testingTrace counted and conditional loops to their stopping state, repair an accumulator that resets every iteration, and design tests with expected results on and either side of a threshold.
- L05 · 60 min · Topics 3.2, 3.10Lists and data abstractionExplain the concrete benefit of storing club capacities in one list, read and change lists using AP index 1 compared with Python index 0, and trace filters that keep duplicates and return an empty list when nothing matches.
- L06 · 60 min · Topics 3.12, 3.13Procedures, parameters and reuseTrace procedure calls by matching arguments to parameters, distinguish a returned result from displayed output, and refactor two copies of a counting loop into countAvailable(caps, minimum) whose parameter really changes its result.
- L07 · 50 min · Topics 2.1Representing information in bitsRead unsigned binary using place values, reason about what a fixed number of bits can store and what happens on overflow, and explain why sampled, rounded data approximates a continuous original and why every bit pattern needs an agreed interpretation.
- L08 · 50 min · Topics 2.2Compression and information lossEncode and decode text with a stated lossless dictionary, count the dictionary as overhead when comparing sizes, explain what a deliberately lossy model discards, choose between lossless and lossy for a stated purpose, and separate compression from confidentiality.
- L09 · 60 min · Topics 2.3, 2.4From data to a justified claimUse metadata to interpret a fictional journey dataset, apply justified duplicate and missing-value rules, calculate means from cleaned rows, and write a qualified claim that separates association from causation and states the sample’s limits.
- L10 · 60 min · Topics 4.1, 4.2Internet paths, packets and failureModel a network as a graph, find valid paths, explain how shared open protocols support communication and growth, reassemble packets using sequence metadata, and test how redundancy keeps devices connected when links fail — while separating this simplified model from real protocol guarantees.
- L11 · 60 min · Topics 5.1, 5.2, 5.3, 5.4Who benefits from an innovationUse two fictional evidence packs to identify benefits and unintended harms for specific stakeholders, distinguish device access from effective participation, trace bias to training data and design rules, evaluate crowdsourced contributions, and propose a mitigation while stating what it leaves unsolved.
- L12 · 60 min · Topics 5.5, 5.6Privacy, permissions and safe computingInvestigate a fictional RouteNow app to judge reuse against stated licences, see why attribution alone is not permission, evaluate data use against stated consent, explain the risks of combining personal data, and match a safeguard to a specific threat while naming what it leaves unprotected.
Labs
- P01 · 45 min · Builds on L02First Python input and outputWrite a short Python program that asks for a club name and the number of places left, then prints one clear sentence. It must reject input that is not a whole number of 0 or more instead of crashing or printing nonsense.
- P02 · 45 min · Builds on L03, L04Repair the eligibility checkerA club sign-up checker has two separate bugs: a condition that lets the wrong students in, and a counter that never gets past 1. Find each bug with a failing input, record expected and observed results, then repair both.
- P03 · 60 min · Builds on L05Filter room capacitiesBuild a new list containing only the rooms with at least a minimum number of free seats. Keep the original order and keep duplicates. Then explain how the list makes this program simpler than separate variables would.
- P04 · 45 min · Builds on L06A reusable counting procedureTwo pages copy the same counting loop with different fixed numbers. Refactor them into one procedure, countAvailable(capacities, minimum), that RETURNs a count. Then show that two calls with different arguments give different results.
- P05 · 45 min · Builds on L07, L08Bits and compression choicesConvert between binary and decimal using place values, decode a short message with an explicit dictionary, and decide whether an encoded version is really smaller once the dictionary needed to reverse it is counted.
- P06 · 45 min · Builds on L09Cleaning journey recordsA fictional class logged six journey records, with a duplicate and a missing value among them. Decide which rows to include, log each cleaning decision, calculate the mean journey time and the bus mean, and write a claim that is qualified by what the data can and cannot show.
- P07 · 45 min · Builds on L10Reassembling a packet journeyA message is split into three numbered packets and sent across a small fixed network. Trace a valid route from S to T, deliver the packets out of order, and use the sequence numbers to show how the message is put back together, and why it stays incomplete while a packet is missing.
- P08 · 45 min · Builds on L10Testing a resilient networkUsing the same seven-link network as P07, fail links on purpose and predict, before checking, whether S can still reach T. Find which single failures the network survives, which pair cuts S off completely, and whether adding one extra link would fix it.