🗺️ Course Outline

A 10-week introduction to Python for upper primary students.

Shape: 7 stateless learning worksheets that build core Python concepts, followed by a 2–3 week project deliverable students iterate on, save to a file, and take home or use for grading.

Why this shape: worksheets give every student a guaranteed floor (validated, scaffolded, easy/medium/hard tiers); the project gives them a ceiling (something open-ended they own and can show off). The save-to-file flow shipped in the scratchpad is the bridge — students take their work between sessions and home.

Week-by-week 7 worksheets + 3 project weeks = 10 lessons

Week Focus Concepts Status
1WS1 — The Python Calculatorprint, arithmeticready
2WS2 — Storing Your Numbersvariables, assignmentready
3WS3 — Making Things Repeatfor loops, rangeready
4WS4 — Making Decisionsif / elif / else, comparisonsready
5WS5 — Working with Textstrings, f-strings, inputready
6WS6 — Lists & Indexinglists, indexing, len, iterationready
7WS7 — Functions (new)def, parameters, return, reuseto build
— Project phase — pick one deliverable, iterate across the final lessons —
8Project: kick-off & first draftpick a brief, scaffold from a starter, save to fileto design
9Project: iterate & extendadd features, refine, debug, re-saveto design
10Project: finish, share, presentfinal save, take home, show classmatesto design

Project deliverable three candidate briefs — not yet locked in

Each option is sized for ~3 lessons of a self-paced upper-primary student, leans on concepts from WS1–WS7, fits in a single .py file students save and re-open in the scratchpad, and is something a kid can actually show a parent. Running multiple briefs in parallel lets teachers pitch the one that suits their class — and gives extension/lunchtime-club students a second project to tackle.

🎮 Choose-Your-Own-Adventure

A branching text story the player navigates by typing choices.

  • Concepts: input, strings/f-strings, if/elif, functions for each scene, lists for inventory
  • Extension: scoring, randomised events, multiple endings
  • Show-off factor: family/friends play it from a saved file
  • Risk: weakest visual payoff — pure text

🎨 Pixel Art Animation prototype

A drawn scene on a 20×20 grid that animates when the player presses arrow buttons.

  • Concepts: coordinates, for loops, functions, dict state, event handlers
  • Try the prototype →
  • Extension: animation loop (frame buffering), interactive cursor, palette swap
  • Show-off factor: high — print as a poster, share screenshot
  • Absorbs the discarded "Drawing with Code" worksheet content as the project on-ramp instead of a standalone WS

❓ Quiz / Trivia Game

A multi-question quiz the student authors and a friend plays.

  • Concepts: lists of questions, loops over them, conditionals for scoring, functions for the quiz loop
  • Extension: categories, difficulty levels, high-score tracking, true/false vs. multiple choice
  • Show-off factor: students enjoy writing questions as much as playing — great cross-curriculum hook (geography quiz, maths quiz, etc.)
  • Lowest tech risk — uses only concepts already in WS1–WS7

TODOs to ship the course

  • build Worksheet 7: Functions. Author a new WS7 covering def, parameters, return values, and reuse. Motivate it with a "DRY my code" hook (e.g. repeated print blocks, repeated drawing code if Pixel Art is in play).
  • cut Discard standalone "Drawing with Code" worksheet. Remove the current WS7 from worksheets/index.json. Salvage its problems — the canvas API intro, grid coordinates, looped row/column drawing — into starter material for the Pixel-Art project brief, where they motivate the work instead of being homework.
  • decide Pick the project brief(s) to ship. Likely run 2–3 in parallel so classes can choose, extension students get a second option, and lunchtime clubs have something fresh. Lock in default for week 8 kick-off.
  • design Project page in the platform. A new entry point (sibling to the worksheet selector) that pitches each brief, links to a starter .py file, and opens it in the scratchpad. Decide: dedicated "type": "project" worksheet block vs. just curated scratchpad starters.
  • design Project rubric & grading guide. Per-brief: what does "complete" look like, what's a stretch goal, how do teachers mark it? Include a printable rubric for parent/teacher reference.
  • build "Reopen last project" affordance. The scratchpad's File System Access save flow needs a smooth re-entry path so students don't waste lesson 9/10 minutes re-finding their file. Persist the FileSystemFileHandle in IndexedDB (noted in ROADMAP Phase 4).
  • build iPad save UX gap. Safari can't overwrite the same file — each save creates a new download. For a multi-week project this is painful. At minimum, document the workaround for teachers; ideally, surface a clear in-app warning on iPad.
  • build Teacher pack. Per-worksheet learning objectives, common student mistakes, answer keys; per-project rubric and example finished artefacts. Markdown + print stylesheet is enough for v1.
  • decide WS5 polish: add the comma-separated print() args mini-section flagged in ROADMAP — small but used by WS6 and likely by every project brief.
← Back to home