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. Choosing a problem and a client

Choosing a problem and a client

Pick an IA problem that interests you, is complex enough, can be finished with your skills and tools, and meets the ethical rules; choose a computational context and a client, and write a proposal your teacher can approve.

  • IB Computer Science
  • Internal assessment
  • SL and HL

17 min readLast reviewed 14 Oct 2026

What a good IA problem looks like

The problem you choose sets a ceiling on every later mark. A problem with no real logic in it cannot produce algorithms worth designing in Criterion C or techniques worth evaluating in Criterion D, however well you write about it. A problem that is far too large ends with a product that only partly works. The best IA problems sit between the two: big enough to need several algorithms that you design yourself, small enough to finish, test and evaluate in the time you have.

Four checks decide whether an idea is worth taking further. The problem should be of personal interest and real; it should need genuine algorithmic thinking, not just storage; it should be feasible with your skills, tools, data and time; and it should meet the ethical guidelines. An idea that fails a check can usually be rescued by narrowing it, widening it or approaching it from a different angle.

Flowchart: an idea passes four decisions: personal interest and a real problem; needs real algorithms, not only storage; feasible with skills, tools, data and time; meets the ethical guidelines. Yes to all leads to writing the proposal; any No to changing the idea.Flowchart: an idea passes four decisions: personal interest and a real problem; needs real algorithms, not only storage; feasible with skills, tools, data and time; meets the ethical guidelines. Yes to all leads to writing the proposal; any No to changing the idea.
Every No leads back to changing the idea and checking it again from the first question, and only an idea that passes all four checks goes into a proposal.

The order of the checks matters. Interest comes first because you will work on the project for months, and a problem you care about is easier to specify in detail. Complexity comes before feasibility because it is easier to cut a rich problem down to size than to add depth to a thin one.

A real problem of personal interest

The IB asks for a problem of your own choosing and of personal interest. You can apply any topic in computer science that interests you, and it does not have to relate directly to the course content. Good problems usually come from a place where you can watch the problem happen and talk to the people who have it.

Source

Example problem

Why it works

A club or team you belong to

The robotics club cannot track which parts are on loan and which are broken

You see the problem weekly and can test with real members

A family member's work

A relative's tutoring business schedules lessons by text message and double-books tutors

A real user with clear rules (availability, travel time, lesson length)

A school department

The music department's practice rooms are booked on a paper sheet

A client on site, many users, rules to enforce

Another subject

A physics class needs a projectile simulation that shows air resistance

The algorithm is the point: numerical steps, graphs, validation against known results

Your own learning

A vocabulary trainer that schedules reviews based on past answers

You are a genuine user, and the scheduling rule is real logic

A computing issue

A tool that checks the strength of passwords against a list of common ones

Uses searching, hashing and string processing

Working with a client

Many students build their product for a particular person who has the problem. That person is usually called the client.

Definition

Client (IA): the person or organisation who has the problem an IA product is built to solve, and who provides requirements, feedback and help with testing.

A head of music who needs a practice-room booking system is a typical client. The word means something different in networking, where a client is a device that requests services from a server.

The current IA criteria do not mention a client, and the task does not require one: the problem only has to be of your own choosing and of personal interest. A client still helps in three ways. They describe the problem in their own words, which gives Criterion A real requirements instead of guesses; they can agree what counts as success, which makes the success criteria harder to argue with; and they can try the finished product, which gives Criterion E evidence that is not just your own opinion.

You can also be your own user, for example in a revision tool for yourself. Then you need to work harder at objectivity: write success criteria that a stranger could test, and find other people to try the product before you evaluate it.

A good client

A weak client

Has the problem now and will still have it when you finish

Has no real need; agreed to help as a favour

Can meet you several times: at the start, after the design, for the trial

Is hard to reach after the first conversation

Can say what success looks like in numbers or behaviours

Can only say "make it nice"

Will let you observe the current way of working

Will not share how things are done now

Common mistake

Finding a client after the product is built. Requirements invented to fit an existing program are easy to spot: they describe what the code happens to do, not a problem anyone had. Talk to the client before writing any code, record what they say (with their consent), and build the specification from it.

Every person involved in developing the solution must give consent before any investigation begins, and that includes interviews and observations of the client. Ask your teacher how your school records it.

Enough complexity and innovation

The IB asks for a problem that needs a software solution complex enough for a Diploma Programme course, and enough innovation for you to show organisation, algorithmic thinking and the ability to code your own algorithms. The teacher support material gives more detail on complexity; your teacher has it and can tell you whether an idea is enough. The table gives a practical way to judge an idea yourself. It is advice based on what the criteria reward, not an official list.

Signs of enough complexity

Signs of too little

Rules that the program must enforce (no clashes, limits, permissions)

Only adding, editing, deleting and showing records

Calculations or decisions that depend on several inputs

A fixed set of screens with no logic between them

Searching, sorting, scheduling, matching or optimising

Data typed in and displayed again unchanged

Data structures chosen for a reason (queues, dictionaries, trees, a relational database with joins)

One list of strings

Something that happens over time (a timer, a simulation step, a release job)

Everything happens only when a button is pressed

Integration of parts: a database, a web interface, a library, a file format

One file of code with one purpose

A product that only creates, reads, updates and deletes records (often shortened to CRUD) is the most common way to fall short. Almost every useful system does those four things, so they are not wrong to include. They simply leave nothing for Criterion C's algorithms or Criterion D's techniques to show, unless the problem adds rules on top.

Worked example

Three students propose ideas. Evaluate each one as an IA problem, and suggest how the weakest could be improved.

  1. A revision quiz app: the user answers ten multiple-choice questions and sees a score.

  2. A to-do list app with categories and due dates.

  3. A practice-room booking system for the school music department.

Show the solution

1. Revision quiz. Interesting to many students, and feasible. The logic is thin: show a question, compare the answer with a stored one, add one to a score. There is little to design in C or evaluate in D. As it stands it is too simple.

2. To-do list. Feasible, but almost entirely CRUD. Sorting by due date is the only algorithm, and a built-in sort does it. There is no clear client with a problem; a to-do list solves a problem that many free apps already solve. Too simple, and hard to justify in A.

3. Booking system. A real client with a visible problem (double bookings, rooms booked but unused, no record of use). It needs several algorithms: a clash test on time intervals, a weekly limit per student, the release of bookings nobody checked in to, and a usage report. It has a natural computational context (a web application with a relational database). Strong, provided the scope stays at one department.

Improving the quiz. Give it a real problem and real logic. A language teacher wants students to practise the words they get wrong more often than the ones they know. The product schedules each word's next review from the student's past answers (a correct answer pushes the review further away, a wrong one brings it back), picks each day's questions from the words due, and shows the teacher which words the class finds hardest. The scheduling rule, the daily selection and the class report are now algorithms worth designing and testing.

Innovation in the IA sense is about your own design work, and an idea that already exists elsewhere can still qualify. Booking systems are common, yet this one is designed for a particular department's rules (30-minute slots, a weekly limit, a check-in code on the door), and the student has to work out how those rules are enforced. A product shaped closely around one client's problem gives you design decisions to explain in every later criterion.

Choosing a computational context

Once you have a problem, you choose the kind of software that will solve it. The IB calls this the computational context, and Criterion A's top band asks you to explain why you chose it.

Definition

Computational context: the specific area of computing selected for an IA solution, including the kind of product and, usually, the main languages and tools used to build it.

Typical contexts are a web application with a relational database, a simulation, a mobile app, a game and a machine-learning classifier.

The context should follow from the problem, not the other way round. Students who start with "I want to make a mobile app" often struggle to find a problem that needs one; students who start with the problem can usually explain the context in two sentences, which is exactly what Criterion A rewards.

Computational context

Example problem

Where the algorithmic thinking lies

Trap to avoid

Web application with a relational database

Room or equipment booking for a department

Clash and limit rules, queries joining tables, reports

Only forms and tables with no rules behind them

Stand-alone object-oriented program

A timetable generator for a small club

Constraint checking, search for a valid arrangement

A class diagram with classes that do nothing

Simulation

Queues at a canteen till, with different numbers of tills

Time steps, random arrivals, collecting statistics

Animation with no model behind it

Game

A turn-based strategy game with a computer opponent

Game state, rules, the opponent's decision algorithm

A copied tutorial game with new graphics

Mobile app

A hiking log that records routes and calculates distance and climb

Processing GPS points, filtering noise, summarising

An app made in a no-code builder

Machine-learning classification

Sorting photos of plant leaves into healthy or diseased

Preparing data, choosing features, measuring accuracy

Calling a ready-made model with no data work of your own

Plug-in or extension of an existing system

A plug-in for a school's learning platform that reminds students of overdue work

Reading the system's data, deciding who to remind and when

Using a system you do not have written permission to change

Linking question: How do the database topics help a student choose between a spreadsheet and a relational database for the booking system (subtopic A3.1, Database fundamentals)? A shared spreadsheet stores rows but has no reliable way to enforce rules between them, so two students could still type overlapping bookings. A relational database stores students, rooms and bookings in linked tables, and a program can check the rules before each change is saved, which is the main reason it suits the problem.

Feasibility: skills, tools, data and time

The IB states that you should have the technical skills, the hardware and software, and access to the data that your problem needs. A problem that fails on any of these is risky, however good it looks on paper.

Question

What to check

Booking system

Skills

Have you used the language, framework and database before? If not, can you learn the basics in a week or two?

Python from class; SQL from topic A3; Flask is new but small

Hardware and software

Does the product need devices, servers or accounts you do not have?

Runs on a laptop; the client trial needs a school server

Data

Do you need real data, and can you get it legally and safely?

Room names from the client; test students invented for development

Time

Can the core features be built and tested well before the draft deadline?

Six components over about seven weeks of development

Help

Who can you ask when something does not work?

Teacher, documentation of the framework, the client for rules

A useful habit before committing is to build a small prototype of the riskiest part in the first week or two. For the booking system, that means one web page that saves a booking to a database and refuses an overlapping one. If that works, the rest is more of the same; if it does not, you have found out early, while changing the plan is still cheap.

Common mistake

Choosing a framework, engine or language mainly to learn it during the IA. Learning a new tool is slow, and the time comes out of development and testing. The tool also has to be explained and justified in Criterion D, which is hard when you only partly understand it. Use what you know for the core, and add one new tool only when it clearly suits the problem.

Feasibility also means cutting the scope to fit. The booking system deliberately leaves out signing in with the school's own accounts: that would need the written consent of the system's owner, access the student does not have, and time the project cannot spare. Leaving a feature out on purpose, and saying why in Criterion A, is a sign of good planning.

Ethics

Every IA must follow the IB's ethical guidelines, and a product that breaks them is not acceptable, however good its code. The rules exist because IA products often handle data about real people.

  1. Consent first. Get consent from the people who will be involved in developing the solution before any investigation starts: interviews, observations, surveys and testing.

  2. Written consent for existing systems. Get written consent from the owner of any existing system you use or change, for example a school website, a learning platform or a network you test.

  3. Secure storage. Store all data you collect securely so that it stays confidential.

  4. Single use. Use the data you collect only for your computational solution, and for nothing else without explicit permission.

  5. Original data. Wherever possible, use original data or collect it yourself. The IB words this one as a recommendation; the first four are rules.

For the booking system, these rules become practical decisions. Development uses invented students, not real names and IDs. Passwords are stored only as hashes, so even a copy of the database does not reveal them. The client trial uses a server provided by the school's IT department, with its written consent, and the trial data is deleted at the end. Schools also follow local health and safety practice for any research linked to the IA.

Ethics in context: Ethical questions in the IA are the same ones studied in subtopic A4.4, Ethical considerations, on a small scale. A booking system records when each student uses a room, which is personal data; the head of music is a stakeholder who wants usage reports, and students are stakeholders who did not ask to be tracked. Collecting only what the problem needs, for example deleting individual check-in times once each weekly report has been produced, is a design decision to explain in the documentation.

Products that are not acceptable

Some products fail no matter how complex they are, because there is not enough of your own coded work in them: products made only of copied code, websites built from a template that fixes their structure and layout, sample products shipped with software (the IB names the Northwind database supplied with Microsoft Access), copied games without major documented changes, and apps made with drag-and-drop builders without code. Frameworks, engines and libraries are allowed. When you use one, the logic that solves your problem must still be designed and written by you, and the library must be acknowledged.

Writing the proposal

Before you start Criterion A you will usually write a short proposal for your teacher. The IB lists the initial proposal among the evidence a teacher can use to check that the final work is yours. A good proposal answers the four checks in a few lines each, so your teacher can see at once whether the idea will work.

Heading

What to write

Problem

Who has it, what goes wrong now, and how you know

Client and users

Who you will work with, and whether they have agreed

Why it interests you

One or two sentences

Computational context

The kind of product and the main tools

Where the algorithms are

Two to four rules, calculations or processes the product must carry out

Data

What data is needed, where it comes from, how it is kept safe

Risks

The hardest part, and what you will do if it does not work

Consent

Who must agree, and whether they have

Worked example

Two students write proposals for the same project. Compare them and identify what makes the second one stronger.

Proposal 1: "I want to make a booking website for the music department because the paper sheet is annoying. Students will be able to log in and book rooms, and the teacher can see the bookings. I will use Python and a database. It will be user-friendly and fast. I like music so this interests me."

Proposal 2 is longer and follows the headings of the proposal table.

Proposal 2

Problem: the six practice rooms are booked on a paper sheet on the music office door. The head of music reports double bookings most weeks, some students reserving far more time than others, and rooms booked but left empty. Students can only book while they are at school.

Client and users: the head of music (agreed to two meetings and a two-week trial); about 120 instrumental students.

Interest: I play in the school orchestra and have lost practice time to double bookings.

Context: a web application with a relational database (Python, Flask, SQLite), so students can book from home on their phones.

Algorithms: refuse bookings that overlap another booking or a lesson; limit each student to 3 hours a week; release a booking if nobody checks in within 10 minutes; weekly usage report per room.

Data: room list from the client; invented student accounts during development; passwords stored as hashes; trial data deleted afterwards.

Risks: hosting for the trial. I will ask the IT department for written consent now; if it is refused, the trial will run on my laptop on the music room network.

Consent: head of music agreed verbally; written forms to be signed this week.

Work out your comparison heading by heading before opening the solution.

Show the solution

Proposal 1 names a product, not a problem: "the paper sheet is annoying" gives no evidence of what goes wrong or how often. Its only success measures ("user-friendly", "fast") cannot be tested, it gives no sign of where the algorithms are, and it says nothing about data, risks or consent.

Proposal 2 is stronger on every heading. It states the problem with evidence from the client (double bookings most weeks, uneven use, empty rooms), names a client who has agreed to meetings and a trial, and lists four rules that Criterion C can turn into algorithms. It deals with data protection, the main risk and consent before any code exists, so the teacher can judge feasibility and ethics at once.

Tip

Improve your notes: Run your idea through the four checks before you show it to your teacher. Write one line for each: why the problem matters to you, the two hardest algorithms the product needs, the one skill or tool you are least sure about, and the people whose consent you need. If any line is hard to write, that is the part of the idea to fix first.

Checklist

  • To do:

    My problem is real, of personal interest, and described with evidence of what goes wrong now.

  • To do:

    I can name at least two rules, calculations or processes that my product must carry out (not only storing and showing data).

  • To do:

    I have a client or real users, or a plan for objective testing if I am my own user.

  • To do:

    I have chosen a computational context because it fits the problem, and can explain why in two sentences.

  • To do:

    I have the skills, hardware, software and data the problem needs, or a short plan to get them.

  • To do:

    I have built, or planned, a small prototype of the riskiest part.

  • To do:

    I know who must give consent, and written consent for any existing system I use.

  • To do:

    My data will be stored securely, used only for the IA, and invented or original wherever possible.

  • To do:

    My product will not rely on templates, copied code, sample products or no-code builders.

  • To do:

    I have written a proposal that covers problem, client, context, algorithms, data, risks and consent.

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

  • The computational solution: overviewThe page before this.
  • Criterion A: problem specificationThe 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