In the 2027 curriculum, planning and design are assessed separately across two criteria. This activity helps you understand what Criterion B requires and how it connects to Criterion C before you start writing.
Key change from the old curriculum: There is no longer a "record of tasks" table. Criterion B is now a written planning rationale that maps your design decisions directly to your success criteria. The technical design (diagrams, algorithms, testing) lives in Criterion C. A 3 to 5 minutes video is also required. Total written documentation is capped at 2,000 words across all five criteria — code, code comments, and diagrams are excluded.
The five criteria at a glance
A
Problem specification
~300 words
Define the problem, justify a computational approach, state measurable success criteria. You should have done this already.
B
Planning you are here
~150 words
Design your approach and show how it directly addresses every success criterion from A.
Describe the overall design strategy
Justify technology and language choices
Map each design decision to a success criterion
Show awareness of real constraints
C
System overview
~150 words — coming next
Technical blueprint: diagrams, algorithms, testing strategy. Enough detail for a third party to recreate the solution.
System model with all components and UI
Algorithms in pseudocode or flowcharts
Testing table (normal, boundary, erroneous)
D
Development
~1,000 words
Justify technical choices, demonstrate OOP / data structures, include code excerpts with commentary.
E
Evaluation
~400 words
Assess success criteria, include client feedback, suggest improvements, and complete the mandatory ethical review (A4.4).
Reflection prompts — answer these before you write
01
Criterion B
For each success criterion in Criterion A, write one sentence explaining how your planned design will meet it.
02
Criterion B
Why is your chosen programming language or framework the best tool for this specific problem? Name at least one alternative you considered and rejected.
03
Criterion B
What real constraints (time, hardware access, data availability, client availability) could affect your plan? How will you work around each one?
04
Criterion C
Draw a rough system diagram right now — on paper is fine. What are the main components? How does data flow between them?
05
Criterion C
Pick the single most complex algorithm in your solution. Write it in plain English steps first, then convert to pseudocode.
06
B + C
What will your 3-minute video demonstration show? Plan the scenes now — testing footage must appear in the video.
Starter scenarios — choose one to practise with
Community library book tracker
A small community library records borrowed books in a paper notebook. Books are returned without being crossed off, creating confusion about availability. The librarian wants a simple digital system staff can use on a shared computer.
Criterion B Planning points
Python with SQLite — runs without internet on the library's existing hardware
Tkinter GUI chosen over a web framework to avoid server setup constraints
Algorithm: search by title (SQL SELECT with LIKE clause)
Test: searching a title that doesn't exist → "no results found" shown, no crash
DatabaseCRUD appBeginner friendly
Sports team statistics dashboard
A school football coach tracks player performance in a spreadsheet. Generating weekly parent reports takes two hours and is error-prone. The coach wants automatically calculated statistics and a one-click PDF export.
Criterion B Planning points
Python with matplotlib + CSV storage; coach's laptop has no admin rights so no external DB install
CLI with file export chosen over GUI to reduce development risk within the time constraint
Addresses SC1 (auto-compute averages) and SC3 (exportable PDF report per player)
Constraint: match data only available after Saturdays — plan data import accordingly
Criterion C System overview elements
System diagram: CSV input → parser → stat engine → chart renderer → PDF output
Algorithm: season average (accumulator loop over match records per player)
Test: player with zero matches → division-by-zero handled, returns "N/A"
Test: CSV with missing columns → error caught with clear message
Data processingVisualisation
Local theatre seat booking system
A local theatre sells tickets by phone and records reservations on paper. Double-bookings happen regularly and seat availability is impossible to check quickly. Staff on two different computers need access to the same live data.
Criterion B Planning points
Python + SQLite with Flask web UI — allows multi-device access on the theatre's local network
Relational schema with foreign keys enforces referential integrity at the database level
Addresses SC1 (book a seat), SC2 (real-time seat map), SC4 (cancel and release)
Constraint: theatre dark on Mondays only — all client testing must happen then
Algorithm: availability check before insert (SELECT then INSERT in a transaction)
Test: two simultaneous bookings for same seat → second request rejected with clear error
Test: booking seat row/number outside valid range → validation error returned
DatabaseWeb appIntermediate
Criterion B + C self-check
My planning section explains the overall design strategy in my own wordsB
I justify my technology / language choice and name an alternative I consideredB
Every success criterion from Criterion A is addressed by at least one design decisionB
I acknowledge real constraints and explain how I plan around themB
My system diagram shows all components, data flow, and the user interfaceC
Key algorithms are written in pseudocode or shown as flowcharts — not prose descriptionsC
My testing table covers normal, boundary, and erroneous inputs for each main featureC
All diagrams are large enough to be readable without zoomingC
I have planned what my 3-minute video demonstration will showBC
Combined B + C written text stays well under 300 words (diagrams and code are free)BC
The 2,000-word cap covers all five criteria together. Code excerpts, code comments, and diagrams do not count toward the word limit. State the total word count clearly on the first page of your PDF submission.