B.1 Computational thinking
Specify a computational problem
Use decomposition, abstraction, success criteria, and algorithm traces.
Examples use Python. HL includes additional lessons beyond the SL path.
Write observable success criteria
Replace 'the system should be good' with a statement someone can test: a booking system must reject an overlapping room reservation. Specify the input, required output, constraints, and what should happen for invalid input.
Decompose the system into smaller jobs, such as reading a request, finding conflicts, and storing a confirmed booking. Abstraction keeps the details needed for a particular decision and leaves out irrelevant ones, such as a user's avatar when checking room availability.
Prove behavior with a trace
Trace each change in state rather than guessing from the first and last line. For overlapping intervals, test a full overlap, partial overlap, no overlap, and a reservation starting exactly when another ends. Decide whether the end time is inclusive before implementing the condition.
A solution can meet its original tests yet fail the client's real need. Use feedback to refine the problem specification, then update both the algorithm and its tests so they describe the same intended behavior.
Check yourself
What makes a success criterion useful for evaluation?Show answer
It describes an observable result under stated conditions, so a test can show whether it was met.
References used to build these lessons
We used these official documents as references when building this course's lessons. They are the sources for the syllabus structure and course requirements.
International Baccalaureate · First assessment 2027
This PDF is the public IB subject brief. The complete subject guide and assessment requirements are available through your school or the IB Programme Resource Centre.