Augment Education
    • Question bank
    • Quick fire
    • Worksheets
    • Flashcards
    • Notes
    • Try a quick-fire round
    • All features
    • Business
    • Digital Society
    • Economics
    • Geography
    • Global Politics
    • History
    • Philosophy
    • Psychology
    • Anthropology
    • World Religions
    • Biology
    • Chemistry
    • Physics
    • Computer Science
    • Design Technology
    • ESS
    • SEHS
    • Language and literature
    • Language acquisition
    • Maths AA
    • Maths AI
    • Dance
    • Film
    • Music
    • Theatre
    • Visual Arts
    • Grade calculator
    • Grade boundaries
    • Subject checker
    • Focus timer
    • Exam countdown
    • All free tools
    • IB guide
    • All subjects
  • Blog

Search

Search subjects, the syllabus, glossary terms, the booklets, the IB guide, help and the blog

Log inStart free
augment

Augment Education

IB Diploma revision built around the syllabus.

contact@augment-education.com

Product

  • Features
  • Question bank
  • Quick fire
  • Worksheets
  • Flashcards
  • Notes
  • Subjects
  • What's new

Learn

  • IB guide
  • Booklets, explained
  • Glossary
  • Blog
  • Free tools
  • Grade calculator
  • Subject checker

Company

  • About
  • Help
  • For parents
  • For teachers
  • Comparisons

Subjects

  • English A Lit
  • English A Lang & Lit
  • Chinese A Lit
  • Chinese A Lang & Lit
  • Spanish A Lit
  • Spanish A Lang & Lit
  • English Lit & Perf
  • Spanish Lit & Perf
  • English B
  • Mandarin B
  • Spanish B
  • English ab initio
  • Mandarin ab initio
  • Spanish ab initio
  • Business
  • Digital Society
  • Economics
  • Geography
  • Global Politics
  • History
  • Philosophy
  • Psychology
  • Anthropology
  • World Religions
  • Biology
  • Chemistry
  • Physics
  • Computer Science
  • Design Technology
  • ESS
  • SEHS
  • Maths AA
  • Maths AI
  • Dance
  • Film
  • Music
  • Theatre
  • Visual Arts

Augment Education is developed independently of the International Baccalaureate Organization and is not endorsed by it. “IB” and “International Baccalaureate” are its trademarks.

© 2026 Augment Education. All rights reserved.

  • Privacy
  • Terms
  1. Subjects
  2. Computer Science
  3. Criterion A: problem specification

Criterion A: problem specification

Write the problem specification for your IA: describe the scenario through measurable solution requirements, turn them into testable success criteria, and explain your computational context, with a weak and a strong sample.

  • IB Computer Science
  • Internal assessment
  • SL and HL

14 min readLast reviewed 14 Oct 2026

What Criterion A assesses

Criterion A is the starting point of the whole IA. It carries 4 marks, the recommended length is about 300 words, and everything you write in it is used again: the success criteria from A guide the plan in B, the test plan in C, the testing in D and the judgement in E. A vague Criterion A therefore costs marks far beyond its own 4.

The criterion has two markbands. Each band has three parts, and the difference between them lies mostly in the command terms.

Part

1–2 marks

3–4 marks

What the step up means

Problem scenario

Outlines a problem scenario

Describes the scenario in terms of its measurable solution requirements

A brief summary is not enough; give a detailed account built around requirements that can be measured

Success criteria

States limited success criteria

States appropriate success criteria

The criteria must cover the requirements and be testable, not just present

Computational context

Outlines the nature of the solution in a computational context

Explains the choice of computational context

Saying what you will build is not enough; give the reasons it suits this problem

The IB clarifies the three terms. The problem scenario is a clear description of the problem, including its measurable solution requirements, tied to the real situation: the world around you, another field of knowledge or an issue in computing. Success criteria are measurable outcomes, derived from those requirements, that show the product has been developed successfully. The computational context is the specific area of computing chosen for the solution.

Criterion A is the IA's version of the problem specification taught in subtopic B1.1, Approaches to computational thinking. The headings differ, but the thinking is the same: say exactly what the problem is, within which limits, and how success will be judged before any design begins.

The running example. The worked samples follow the invented practice-room booking system for a school music department, with the head of music as client. The project and every number in it are made up.

Describing the problem scenario

A good scenario answers four questions in a few sentences each: who has the problem, what happens now and what goes wrong, how you know (what the client said, what you observed), and what is in scope and what is deliberately left out. The answers should be specific to one place and one group of people. "Schools often struggle with room bookings" describes a general topic; "the music department's six practice rooms are booked on a paper sheet that is overwritten most weeks" describes a problem you can solve.

Gather the scenario from the people who have the problem. An interview with the client, a short observation of how the current system is used, or a look at the paper records gives you details that you could not have guessed, such as the fact that lessons sometimes take over a practice room at short notice. Record the source in a sentence ("in an interview, the head of music described…"), and keep notes or a recording, with consent, in case your teacher asks how the requirements were found.

Solution requirements

The top band asks you to describe the scenario "in terms of its measurable solution requirements". A requirement turns part of the problem into something the solution must do or achieve.

Definition

Solution requirement: a precise statement, derived from the problem scenario, of something a solution must do or a standard it must reach, written so that whether it has been met can be measured.

Each solution requirement leads to at least one success criterion.

Requirements sit between the problem and the success criteria. The problem says what is wrong ("rooms are booked and left empty"). The requirement says what the solution must do about it ("unused bookings are released so that others can use the room"). The success criterion says how you will test it ("a booking not checked in within 10 minutes of its start is released, and the slot shows as free within 1 minute").

Requirements come in two kinds. Some describe what the product does; others describe how well it does it.

Definition

Functional requirement: a requirement that states a function or behaviour the system must provide, describing what the system does in response to particular inputs or events.

Accepting a booking and producing a weekly report are functional requirements.

The booking system's functional requirements include booking a slot, refusing a clash, enforcing a weekly limit, releasing no-shows, blocking rooms and producing a weekly report. Each one names an action or a rule.

Definition

Non-functional requirement: a requirement that states a quality or constraint the system must meet in the way it performs its functions, rather than a function it performs.

Speed, capacity, security, reliability and ease of use are the usual areas of non-functional requirements.

Non-functional requirements are where unmeasurable wording creeps in. "The system should be fast" and "the system should be secure" are non-functional, and both need a number or a test before they become useful: "the day grid loads in under 2 seconds with 2,000 bookings stored" and "passwords are stored only as salted hashes, so no password appears in the database file".

YouTube
Udacity (Georgia Tech, Software Development Process), “Functional and Nonfunctional Requirements”: a short explanation of the two kinds of requirement, with examples of each.

From requirements to success criteria

Success criteria are the most reused part of the whole IA. The chain from the scenario to the later criteria shows why each one has to be measurable: every later criterion either plans for it, tests it or judges it.

Problem scenario leads to solution requirements, then to success criteria SC1 to SC8. These feed four boxes: B planning, tasks tagged with SCs; C test plan rows for every SC; D test results for every SC; E met, partly or not met per SC.Problem scenario leads to solution requirements, then to success criteria SC1 to SC8. These feed four boxes: B planning, tasks tagged with SCs; C test plan rows for every SC; D test results for every SC; E met, partly or not met per SC.
A success criterion that cannot be tested breaks the chain three times: in the test plan, in the test results and in the evaluation.

What makes a success criterion appropriate

The top band asks for "appropriate" success criteria. In practice that means four things. Each criterion is measurable: it contains a number, a limit or a yes-or-no behaviour. Each is testable by a stranger: someone who has never met you or your client could run the test and agree on the result. The set covers every requirement, including the non-functional ones. And each is realistic for your skills and time, because every criterion you set has to be evaluated in Criterion E, including any you could not meet.

Vague

Measurable

What changed

The system is easy to use

A student who has never seen the system books a slot in under 60 seconds without help

A task, a user, a time limit

The system is fast

The day grid loads in under 2 seconds with 2,000 bookings stored, on a school laptop

A time, a data size, a device

Double bookings are prevented

A booking that overlaps an existing booking or block in the same room is refused; back-to-back bookings are allowed

The exact rule, including the edge case

Students cannot book too much

A booking that would take a student over 180 minutes in one Monday–Sunday week is refused, and the minutes left are shown

A limit, a time period, the response

The data is secure

No password is stored in plain text: the database holds only salted hashes

A checkable fact about the stored data

The head of music gets good reports

The weekly report shows hours booked, hours used and no-show rate per room, and matches hand-calculated values for a prepared test week

The content, plus a way to check correctness

The table also shows a useful habit: write the boundary into the criterion. "Back-to-back bookings are allowed" tells the tester exactly what should happen at the edge, and it tells you, before you code, that the clash test must treat 10:30 as the end of one booking and the start of the next, not as an overlap.

Common mistake

Writing features instead of outcomes. "The system has a login page" and "the system uses a database" describe parts of the product, not results that show success. A success criterion describes what happens when the product works: "only a signed-in student can make a booking; an attempt to book without signing in is redirected to the sign-in page". Keep the login page and the database for the design in Criterion C.

How many success criteria

The guide sets no number. A practical range is about six to ten for a typical IA: enough to cover every requirement, few enough that each can be planned, tested and evaluated within the word limit. Ten criteria evaluated properly in 400 words already means about 40 words each in Criterion E. Number them (SC1, SC2, …) so that every later criterion can refer to them by label.

Worked example

A student's draft success criteria for a canteen pre-order app read:

  1. The app is user-friendly.

  2. Orders are processed quickly.

  3. The app works on phones.

Rewrite each one as a measurable success criterion, and explain what makes your version testable.

Show the solution
  1. "A student who has not used the app before places an order of two items in under 90 seconds without help, in a test with five students." It names a task, a time limit and a test, so anyone can repeat it and get the same verdict.

  1. "An order placed before 10:30 appears on the kitchen list within 5 seconds; orders placed after 10:30 are refused with the message 'Pre-orders close at 10:30'." It gives a time limit, a cut-off rule and the expected behaviour at the boundary.

  1. "Every screen displays without sideways scrolling on a screen 360 pixels wide, checked on two different phones." "Works on phones" could mean many things; a width and a check make it pass or fail.

In each rewrite, the vague adjective has been replaced by a quantity, a condition and a way of checking it.

Explaining the computational context

The lower band asks you only to outline what kind of solution you will build. The top band asks you to explain the choice: give reasons, tied to the problem and its requirements, why this context suits it. The strongest explanations also say what you rejected and why.

A useful structure is one sentence for each important decision, each with a "because" that points back to the scenario or a requirement:

  • the kind of product ("a web application, because students need to book from home on their own phones, and a browser needs no installation");

  • the data storage ("a relational database, because students, rooms and bookings are linked, and the clash and weekly-limit rules are queries across many bookings");

  • the language and main tools ("Python with Flask and SQLite, because Python is the language I have studied, Flask is small enough to understand completely, and SQLite needs no separate server");

  • an alternative rejected ("a shared spreadsheet was rejected because it cannot refuse an overlapping entry").

You also need the skills, hardware, software and data to carry out the solution. Criterion A is the natural place to show that in a sentence, for example by noting that the trial server is provided by the school's IT department with its written consent.

Tip

A quick test for "explains": cover the scenario and read only your computational context. If the reasons would fit any project ("Python is popular and easy to read"), they are generic. If they could only fit your problem ("students book from home, so it must run in a phone browser"), they explain the choice.

A weak and a strong Criterion A

Both samples describe the same project. Read the weak one first, decide which band it fits and why, then compare it with the strong one.

Weak sample (about 100 words)

Problem. The music department uses a paper sheet to book practice rooms. This causes problems such as double bookings. My client is the head of music, who wants a better system.

Solution. I will make a booking website where students can log in and book rooms. The teacher will be able to see all the bookings.

Success criteria.

  1. Students can log in.

  2. Students can book a room.

  3. The system stops double bookings.

  4. The system is user-friendly.

  5. The system is fast.

Computational context. I will use Python and a database because Python is a good language and databases store data.

The weak sample outlines a scenario with one problem and no evidence or numbers, so it fits the 1–2 band's "outlines a problem scenario". Its success criteria are limited: two describe features, two cannot be measured, and nothing covers no-shows, the weekly limit, blocks or reports. The computational context is outlined, not explained: the reasons would fit any project.

Strong sample (about 360 words)

Problem scenario. The music department's six practice rooms (P1–P6) are used by about 120 instrumental students between 07:30 and 18:00 on school days. Bookings are made on a paper sheet on the office door. In an interview, the head of music (the client) described four problems: crossed-out entries lead to double bookings most weeks; a few students reserve many hours while others find nothing free; rooms are booked and left empty; and students can only book while at school. She also has no record of room use when planning lessons.

Solution requirements. Students book 30-minute slots from any device; overlapping bookings and lessons are impossible; each student has at most 3 hours a week; unused rooms are freed; the head of music can block rooms and see weekly use; invalid input never changes the data; and the room grid stays quick as bookings build up over the year.

Success criteria.

  • SC1 A signed-in student can book free 30-minute slots, 07:30–18:00, Monday–Friday, up to 7 days ahead.

  • SC2 A booking that overlaps a booking or block in the same room is refused; back-to-back bookings are allowed.

  • SC3 A booking that would take a student over 180 minutes in a Monday–Sunday week is refused, showing the minutes left.

  • SC4 A booking not checked in with the door code within 10 minutes of its start is released within 1 minute.

  • SC5 A block cancels clashing bookings, and each affected student sees a notice at their next sign-in.

  • SC6 The weekly report gives hours booked, hours used and no-show rate per room, matching hand-calculated values for a test week.

  • SC7 Invalid input is rejected with a message and leaves the database unchanged.

  • SC8 The day grid loads in under 2 seconds with 2,000 bookings stored.

Computational context. A web application with a relational database (Python, Flask, SQLite). It runs in any browser, so students can book from home without installing anything. The data (students, rooms, bookings, blocks) is linked, and the clash and limit rules are queries across many bookings, which a relational database answers reliably; SQLite comes with Python and needs no server. A shared spreadsheet was rejected because it cannot refuse an overlapping entry.

The strong sample matches every part of the 3–4 band. The scenario is described through its evidence and requirements, each requirement leads to at least one success criterion, every criterion has a number or a testable rule, and the context is explained with reasons that fit only this problem. It runs about 60 words over the recommended 300, which is acceptable as long as the whole documentation stays within 2,000: the figures per criterion are recommendations, and only the 2,000 total is a limit.

Worked example

Use the strong sample. Identify which success criteria come from each of the client's four problems, and identify the requirement that has no success criterion of its own, if any.

Show the solution
  • Double bookings → SC2 (clash rule).

  • Some students reserve too much → SC3 (180-minute weekly limit).

  • Rooms booked and left empty → SC4 (release after 10 minutes without check-in).

  • Students can only book at school → SC1 (book from any device, up to 7 days ahead).

The extra need, a record of room use for planning lessons, leads to SC6 (weekly report), and the need to take rooms for lessons leads to SC5 (blocks). The two non-functional requirements, that invalid input never changes the data and that the grid stays quick, lead to SC7 and SC8. Every requirement has a criterion, so none is missing. Checking coverage this way, problem by problem, is a quick test that the set of criteria is "appropriate".

Common problems in Criterion A

Common mistake

Describing the solution instead of the problem. A scenario that starts "My program will…" skips the problem altogether. Describe the current situation and what goes wrong first; the solution belongs in the requirements and the computational context.

Two smaller problems are common as well. The first is padding the scenario with background that the requirements never use: the history of the school or the benefits of music practice. Every sentence of the scenario should support a requirement. The second is changing the success criteria later without changing Criterion A. If testing in D shows that a criterion was unrealistic, it is better to keep it, test it honestly and discuss the shortfall in E than to rewrite A to match the product.

Common mistake

Writing success criteria the product cannot be tested against in the video. Criterion D's evidence includes the video, which has a 5-minute limit. A criterion such as "students use the system every day for a term" cannot be shown or tested within the IA. Choose criteria whose results you can produce, record and show: a refused booking, a report checked against hand calculation, a load time measured on screen.

Tip

Improve your notes: Make a three-column table with the client's problems on the left, your solution requirements in the middle and your numbered success criteria on the right, joined row by row. Every problem needs a requirement and every requirement at least one criterion. Then read each criterion aloud and ask how a stranger would test it; rewrite any that need your opinion to pass.

Checklist

  • To do:

    My scenario says who has the problem, what goes wrong now, how I know, and what is out of scope.

  • To do:

    I have gathered the scenario from the client or real users, with their consent.

  • To do:

    I have listed solution requirements, functional and non-functional.

  • To do:

    Every requirement leads to at least one success criterion.

  • To do:

    Every success criterion contains a number, a limit or a yes-or-no behaviour that a stranger could test.

  • To do:

    My criteria include the boundary cases I already know about.

  • To do:

    My criteria describe outcomes, not features.

  • To do:

    My criteria are numbered (SC1, SC2, …) so I can use the labels in B, C, D and E.

  • To do:

    I have explained the computational context with reasons that fit only my problem, including one alternative I rejected.

  • To do:

    Criterion A is about 300 words, and I know it will be used by every later criterion.

Keep your place

In Augment the notes remember where you stopped and which pages you have finished.

Open in Augment

More IB Computer Science notes

  • Choosing a problem and a clientThe page before this.
  • Criteria B and C: planning and system overviewThe next page.
  • IB Computer ScienceThe Computer Science syllabus, how it is assessed and every notes page.

Carry on with Computer Science in Augment

With a free account, Augment remembers where you stopped in the notes and which questions you have marked.

Start free