IB CS new curriculum First assessment May 2027

Criterion B — Planning

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
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
  • Addresses SC1 (add / return books) and SC2 (real-time availability view)
  • Constraint: librarian available only on Tuesdays — interview must be planned early
Criterion C System overview elements
  • System diagram: GUI → Controller → SQLite DB
  • Data model: Books (id, title, author, available) + Loans (id, book_id, borrower, date)
  • Algorithm: search by title (SQL SELECT with LIKE clause)
  • Test: searching a title that doesn't exist → "no results found" shown, no crash
Database CRUD app Beginner 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 processing Visualisation
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
Criterion C System overview elements
  • System diagram: browser → Flask routes → booking logic → SQLite → seat-map renderer
  • 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
Database Web app Intermediate

Criterion B + C self-check
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.