How do I design a system that solves a problem well — and how do I know it does?
Syntax is not the challenge. The challenge is the problem itself — algorithmically expensive, systemically unpredictable, socially misunderstood. This course teaches you to see that difference and build around it.
The previous course taught you to think computationally. This one teaches you to solve problems that resist straightforward solutions — problems with multiple interacting components, messy real-world constraints, and requirements that shift as you understand them better.
Some computations are intrinsically expensive. A solution that works for 100 records may be unusable at 100,000. You learn to see that difference before it becomes a crisis.
When components interact, the behaviour of the whole cannot be predicted from any single part. You design for interfaces, not just implementations.
The hardest layer in many problems is not the computation — it's understanding what people actually need. This only becomes clear when they use what you built.
Every unit builds the same habit: predict before you run. Before executing any program — whether you wrote it, a partner wrote it, or AI generated it — you write down what you expect it to happen. This applies everywhere, always.
Used when AI is most likely to mislead you — problems that require genuine problem intuition, not pattern-matching on code. Productive struggle is the point.
You use AI to interrogate your design, not generate your code. Give AI your architecture and ask what could go wrong. Every interaction is predicted, logged, and reflected on.
Full access — you direct AI across a complex build and own everything it produces. You justify every architecture decision and defend every line in a live oral check.
Every major project moves through four phases. The process is as important as the product.
Every pathway unit requires two documented consultations. The first happens before the architecture is finalised. The second happens when a partial working system can be demonstrated. The gap between what the stakeholder said they needed and what they discover when they use a real system is where the most important design learning occurs.
Each unit has its own AI mode. Two pathway projects are formally assessed. You choose two different pathways across the year — the transfer between them is the most important learning design in the course.
Stack familiar, syntax not the constraint. You read and trace 60-line multi-file programs, classify problems by complexity type, build a constraint-satisfaction program without AI, and use AI as a design critic for the first time.
Your chosen pathway, your chosen problem. Multi-file system built from an approved architecture document. Two stakeholder consultations. Mode 2 throughout — AI critiques your design, never writes it for you.
Relational schemas, complex SQL joins, multi-endpoint REST APIs, authentication, and input validation — from scratch. Ends with a Mode 3 mini project: your first full-access AI experience at manageable scope, before the stakes are high.
A different pathway from Unit 2. Full AI access. You write your own assessment criteria. The modification challenge is new this year — you'll change code live during the oral defense and explain every effect.
One problem. Two pathways structurally integrated — not side by side, but genuinely interdependent. A real named stakeholder, consulted three times. Twelve-minute oral defense with a live modification challenge.
Click any week to expand the details. The coloured pill shows the AI mode. Use the finder below to jump to a specific date.
Enter any date to see what unit and topic we're on.
Every student confirms the full stack runs end-to-end on day one. Then the course opens with the central question: what makes a problem genuinely hard? You read and annotate a 60-line multi-file program you've never seen — tracing execution across files, predicting output before running.
You trace the behaviour of a multi-function, multi-file program under different inputs — writing your prediction before each run. The quiz tests whether you have the vocabulary to talk about why code fails at scale, not just when it does.
Each of the three complexity types gets dedicated class time with its own case study. Social complexity is the hardest layer — understanding what people actually need is a design problem, not a communication problem. You decompose three non-trivial problems on paper before touching any code.
You choose the problem, you design the algorithm, you build the program — without any AI assistance. This is the foundation the rest of the year depends on. The problem intuition you build here is what lets you evaluate AI output critically later.
AI becomes available — but as a critic, not a code generator. Before asking AI anything, you write your prediction: what do you expect it to say? Then you log every interaction: what was challenged, how you responded, and — critically — what you disagreed with and why.
The code-reading challenge is the final check of Unit 1 — can you annotate what each section does, trace execution, and identify the design decisions in code you've never seen? Pathway guides are distributed; you read them and annotate two you're considering.
Before any architecture work, you conduct the first stakeholder consultation using a structured protocol that distinguishes stated needs (what they say they want) from latent needs (what they'll discover they needed when they use a real system). This distinction shapes every design decision that follows.
No code is written until the architecture document is approved. This is a hard gate. The document must be specific enough that a classmate could implement from it. AI may help you research approaches — the architecture is yours.
Build begins. Your approved architecture is your contract. The question at the start of every class: "Am I building what I designed, or have I drifted?" AI use log entries must include your prediction of what AI will say before you ask.
Disrupted week: UN Day Wednesday Oct 21, Parent–Teacher Conferences Thursday–Friday Oct 22–23. Use the available time for independent build work. Students who have not yet received design approval must resolve this before Autumn Break.
The bug-injection exercise: a 30-line AI-generated program that runs without crashing but produces wrong results. Your task is to find and explain each bug before testing with inputs. AI produces plausible-looking errors — this exercise builds the skill to catch them. The mid-project check is a 10-minute conversation, not a grade: show the component you're least confident about, and name one thing that has surprised you.
A different-pathway partner reads your architecture document and asks: "What would break first under real load?" You document the challenge and write a response — either a design change or a justified defence. This is adversarial thinking as a design practice.
The second stakeholder consultation is the most valuable Criterion D moment available to you. A stakeholder who says "not quite" is giving you more than one who says "yes." Document the gap between what they said they needed in Week 1 and what they discover using a real system now.
3-day week only — Thanksgiving Thursday and Friday. Project submission, written evaluation, and AI category analysis due. Students who name specific failures — including places AI led them wrong — score higher than students who claim everything went fine.
Schema design decisions cascade upward through every layer. A bad schema makes every query harder, every API more complex, and every client less reliable. You design schemas on paper before writing any code, then use AI to interrogate your design — not generate it.
No AI this week. Raw SQL is the honest tool — understanding what an ORM does requires being able to do it without one. Every JOIN you can't write on paper is a JOIN you can't debug in production. You write queries on paper, predict the result set, then run and verify.
An API is a contract between a server and everything that talks to it. Precision in HTTP methods, status codes, and response shapes is professional courtesy to every future client — including future you. You build a multi-endpoint API with Mode 1 discipline before the break.
Security is structural — authentication and validation are not features added at the end, they are design decisions that affect the schema, the API contract, and the client. You add auth and validation to the API you built before the break, using AI to interrogate your choices.
This is the first Mode 3 experience of the year — and it is deliberately placed here. Students entering Unit 4 having never experienced Mode 3 would face a cold start on a large assessed project. This mini project gives everyone one complete Mode 3 experience at manageable scope. Mode 3 is qualitatively different from Mode 2: you act as the architect, not the critic. That difference cannot be read about — it has to be encountered.
80 lines of code: an unfamiliar database-backed Flask API you've never seen. Annotate what each section does, trace the request-response cycle for two different endpoints, and identify one design decision and its consequence. This is the readiness check for Unit 4.
Unit 4 opens with a 15-minute written transfer reflection — before any pathway work begins. What thinking do you carry from Pathway A? What will you need to relearn? What questions does this new domain raise that you can't yet answer? Transfer does not happen automatically; it requires this explicit bridging moment.
Your architecture is specific and load-bearing: removing any component should visibly break something. Your schema is normalised and the normalisation is justified. Your criteria must be measurable — specific enough that you can point to evidence for or against each one.
Full AI access begins. You direct AI across the system — every piece of AI-generated code is read before it is run. The analytical log entries are categorised by type (clarification, code generation, debugging, evaluation). Daily question: "Am I building what I designed?"
4-day week (PD Day Monday). After a week away, you re-read your design doc and commit history before writing a new line. A different-pathway partner gets your architecture explained to them — their confusion tells you where your design is unclear.
The modification drill prepares you for the oral defense: identify three changes you could be asked to make live, make each one deliberately, and explain exactly what changed and why — including any side effects. The most expensive design errors are the ones discovered too late.
Different partner from Presentation 1. Focus: "What has changed since last time? What feedback did you act on?" The three test cases must include at least one that reveals a real flaw — not just cases designed to pass.
3-day week (P-T Conferences Thu–Fri). Second stakeholder consultation: show a partial working system and ask whether it still matches what they need. The program must be in a submittable state by close of Wednesday.
The 8-minute defense includes a code walkthrough and a live modification challenge — you make a specific change on the spot and explain what changed, why it works, and what else it affects. Mode 3 means you had full AI access — so the hardest questions will be about AI-generated code.
The capstone opens not with a problem pitch but an integration reflection: what does each pathway contribute to this system, where is the genuine boundary between them, and what is novel at that boundary that neither pathway could produce alone? Students who can't answer this don't yet have a capstone — they have two adjacent projects.
Write one sentence: "This project will NOT include…" Something must be out of scope. If nothing is, you haven't scoped it. Define done before you start.
Every significant piece of AI-generated code is read before it is run. The prediction sections in the AI log are the audit trail. A 60% done product that works is better than a 100% planned product that can't be demonstrated.
By May 14, all major components must be connected and demonstrable to the stakeholder. Testing phase: 5 documented test cases, including edge cases and at least one that reveals a real flaw. Practise the modification challenge with a partner before the defense.
Prepare the 12-minute defense with a partner. Identify the three most complex parts of your system and practise explaining each. Prepare a non-technical version for the authentic audience — what you built, why it matters, who it helps.
The 12-minute defense: a live code walkthrough, a modification challenge (change something on the spot and explain the full effect), and a simulation of stakeholder questions. The authentic audience presentation is a 5-minute non-technical version — what you built, why it matters, who it helps.
Units 2 and 4 are the two formally graded MYP projects. Each criterion is worth 25% and scored 0–8. Unit 1 and Unit 3 function as foundation checkpoints — they matter as evidence, not as MYP grades.
Analyse the structure of the problem — not just its surface. Identify who else is affected beyond the primary stakeholder. Name constraints the brief didn't ask for. Your second consultation must show something that changed in the design.
Your architecture is load-bearing: removing any component should visibly break something. Your schema is normalised and the normalisation is justified. Your API spec is precise enough to implement from. Design decisions must be argued, not just stated.
Your program works on real inputs including unexpected ones. You make a live modification during the oral check and explain what changed, why it works, and what else it affects. Your AI log shows genuine critical evaluation — entries that pushed back, not just accepted.
Evaluate against your stakeholder's actual use across both consultations. Your AI category analysis identifies a pattern, not just a list. Your "what I would do differently" names a specific component and a specific change with a reason.
Every graded check and formal assessment. Highlighted rows are summative grades.
| What | When | Type | Criteria |
|---|---|---|---|
| AI-free quiz: complexity vocabulary + code-reading | Week 2 · Aug 29 | Formative (check) | — |
| AI-free quiz: problem decomposition + algorithmic reasoning | Week 4 · Sep 12 | Formative (check) | — |
| Constraint-satisfaction program + AI critique log | Week 5–6 · Sep 19–26 | Formative (prep for Unit 2) | — |
| Code-reading challenge (60-line multi-function program) | Week 6 · Sep 22–26 | Formative (readiness check) | — |
| Architecture document + design gate (Criterion A/B) | Week 8 · Oct 10 | Formative (gate) | AB |
| AI use log graded check | Week 11 · Nov 7 | Formative (check) | — |
| Mid-project formative check: least-confident component | Week 11 · Nov 2–6 | Formative (process check) | — |
| Unit 2 Pathway A — full project + 8-minute oral defense + AI log | Week 14 · Nov 23–25 | Summative — graded | ABCD |
| Schema design checkpoint + AI critique log | Week 15 · Dec 4 | Formative (check) | — |
| Mini connected-systems project (Mode 3) | Week 19 · Jan 22 | Formative (gradebook item) | AB |
| AI-free quiz: schema, JOINs, REST, auth | Week 20 · Jan 25–29 | Formative (check) | — |
| Code-reading challenge (80-line Flask API) | Week 20 · Jan 25–29 | Formative (readiness check) | — |
| Transfer reflection + formal proposal + first stakeholder consultation | Week 21 · Feb 5 | Formative (gate) | A |
| Architecture document + criteria finalised | Week 22 · Feb 12 | Formative (gate) | AB |
| Cross-pathway peer presentation 1 | Week 24 · Mar 1–5 | Formative (process check) | — |
| Mid-project formative check + 3 documented test cases | Week 26 · Mar 19 | Formative (check) | — |
| Unit 4 Pathway B — full project + 8-minute oral defense + analytical AI log | Week 28 · Mar 29 – Apr 2 | Summative — graded | ABCD |
| Capstone proposal + risk register | Week 30 · Apr 16 | Formative (gate) | A |
| Integration checkpoint: all components connected | Week 34 · May 14 | Formative (gate) | — |
| Portfolio + AI accountability statement | Week 36–37 · May 28 | Formative (submission) | — |
| Capstone — 12-minute oral defense + authentic audience presentation | Wks 38–39 · Jun 7–17 | Summative — graded | ABCD |
The standard at Grade 10 is higher on every criterion.
Your second consultation shows something that changed in the design — a stakeholder who said "not quite" gave you more than one who said yes.
Your architecture is load-bearing. Your schema normalisation is justified with reasons. Your API spec is specific enough to implement from.
Your AI log shows entries that pushed back on AI. Your modification challenge answer includes the side effects — not just what changed, but what else that affects.
Your AI category analysis identifies a pattern across entries. Your "what I would do differently" names a specific component and a specific change — with a reason.
Whether you're a student, parent, or just curious — feel free to reach out. I'm pretty google-able.