What the IA asks you to build and submit, the three files and their limits, the five criteria and their marks, how computational thinking runs through them, the teacher's role and a realistic timeline.
The internal assessment in IB Computer Science is a single project called the computational solution. You choose a problem that interests you, specify it precisely, plan and design a solution, write the code, test it, and judge how well it works. The project is the same at SL and HL: the same task, the same five criteria and the same 30 marks.
The IB uses two words with exact meanings. The product is the finished software and nothing else. The solution is everything you submit about it: the written documentation and the video. Keeping the two apart helps when you read the criteria. Criterion D judges the product itself (does it work, how was it built, how was it tested), while A, B, C and E judge the process you followed to get there.
Word | What it means | What it is judged by |
|---|---|---|
Product | The working software: the program, app, game, simulation or database application | Criterion D, through the documentation and the video |
Solution | The documentation and the video you submit | All five criteria |
Appendices | Your full source code and other resources you made | Not marked, but needed for full marks in D |
The topic can be any area of computer science that interests you, and it does not have to come from the course content. A program that schedules a sports league, a simulation of traffic at a crossroads or a tool that checks chemistry calculations are all valid, as long as the problem needs a coded solution with real algorithmic thinking. Choosing a problem and a client covers how to pick one.
You hand in three separate files. Each has its own job and its own limits, set out in the IB's requirements for the task, so check all three against them before the final submission.


The documentation, the video and the appendices each answer a different question. The documentation explains what you did and why. The video proves that the product runs and that you tested it. The appendices hold the full code so that anyone can check that the excerpts in the documentation are real and complete.
File | Format | Limit | Must contain |
|---|---|---|---|
Documentation | One PDF | 2,000 words, written as a total on the first page | Five separate sections, one for each criterion A to E |
Video | A common format such as mp4, avi or wmv | 5 minutes | The full functionality of the product and examples of your testing strategy |
Appendices | One PDF | None stated | The full source code and any other resources you made that the documentation refers to |
The word limit applies to the documentation only. Code excerpts, the comments inside them and diagrams are not counted, so a system model drawn as diagrams costs no words at all. The IB names only those three exclusions, so the safe approach is to count everything else you write: ordinary sentences, explanatory text in tables and captions that explain things. Your teacher can confirm how your school counts headings and labels. The IB's guidance recommends a split across the criteria, which also tells you roughly how much explanation each one needs.
Criterion | Recommended words | Share of the 2,000 |
|---|---|---|
A Problem specification | 300 | 15% |
B Planning | 150 | 7.5% |
C System overview | 150 | 7.5% |
D Development | 1,000 | 50% |
E Evaluation | 400 | 20% |
Half of the words go to Criterion D. That reflects its weight: D carries 12 of the 30 marks, more than any other criterion, and it is where you explain and evaluate the choices you made in the code. B and C get only 150 words each because their evidence is mostly diagrams and tables.
The appendices are not used to award marks, and the marker does not have to read them. They still have one hard consequence: a solution without an appendix containing the full source code cannot receive full marks for the techniques in Criterion D. Every code excerpt in the documentation should also say where it sits in the full source ("Appendix A, booking.py, lines 40–72"), so that a reader can find its context.
The documentation has one section per criterion. The table gives each criterion's marks and what it rewards, with the command terms used in its top band. Those verbs matter: "describes" asks for more than "outlines", and "evaluates" asks for more than "explains".
Criterion | Marks | What it assesses | Top band asks you to |
|---|---|---|---|
A Problem specification | 4 | The problem, its measurable requirements, the success criteria and the computational context | Describe the scenario in terms of measurable requirements; state appropriate success criteria; explain the choice of computational context |
B Planning | 4 | How the problem is broken into parts, and a plan with a chronology | Construct a reasonable decomposition; construct a plan that addresses the success criteria |
C System overview | 6 | The system model (including the user interface), the algorithms, the testing strategy | Construct a complete system model; construct algorithms that enable the product to perform; describe a testing strategy aligned with the success criteria |
D Development | 12 | The product, the techniques used, the implementation choices and the testing | Construct a fully functional product using appropriate techniques; evaluate the implementation choices; justify the effectiveness of the testing |
E Evaluation | 4 | How far the success criteria were met, and improvements | Evaluate the extent to which the success criteria were met; justify improvements |
Total | 30 |
Each criterion has two to four markbands, and your teacher chooses the band whose description fits your work best. A piece of work does not have to meet every point of a band to be placed in it: if it matches some points of the 3–4 band and some of the 1–2 band, the teacher reads both and picks the one that describes the work more fairly. Within a band, the higher mark goes to work that shows the qualities strongly and is close to the next band up.
Two consequences follow. A single weak element is unlikely to drop you a whole band on its own, while a pattern of weak elements will. And because the bands are described with command terms, the depth of your writing moves you between bands as much as the product does. A choice that is only stated ("I used a dictionary") fits a lower band than the same choice explained and weighed against an alternative.
Criteria A, B, C and E are process criteria: they judge how well you specified, planned, designed and evaluated, whatever kind of product you built. Criterion D is the product criterion: it judges whether the software works, which techniques you used, how well you understand them, and how well you tested. The video is part of the evidence for D, so a feature that never appears working in the video is hard to credit.
Each criterion must also be consistent with the ones before it. The plan in B must follow from the specification in A; the system overview in C must fit A and B; the development in D must build what C designed; the evaluation in E must return to A's success criteria. An IA in which the success criteria change halfway, or the code does something the design never mentioned, loses marks in several places at once.
The IA is the course's computational thinking process applied to one real problem, from the first statement of the problem to the final judgement of the product. Subtopic B1.1, Approaches to computational thinking, describes the stages; the criteria follow them closely. The mapping shows which stage produces the evidence for each criterion.


Stage | Where it shows in the IA | Evidence |
|---|---|---|
Criterion A | The problem scenario, measurable requirements, numbered success criteria, the computational context | |
Criterion B | A decomposition diagram, components mapped to success criteria, a dated plan | |
Criterion C | Repeated tasks handled by one algorithm (every booking, cancellation and block uses the same clash test) | |
Criterion C | A system model that keeps only what matters: entities and attributes, data flows, screen layouts | |
Criterion C | An algorithm for each component, as a flowchart, pseudocode or numbered steps | |
Coding and testing | Criterion D | Code techniques and the choices behind them, test results for correctness, reliability and efficiency |
Evaluation | Criterion E | Each success criterion judged met, partly met or not met, with evidence and justified improvements |
The IB does not set out this mapping itself; it is a way of seeing how the criteria fit together. In practice the stages overlap: while testing in D you may find that a requirement in A was unclear, or that an algorithm in C missed a case. That is normal, and it is fine to refine earlier work, as long as the final documentation is consistent from A to E.
Every solution must be coded, and you must show and document your own algorithmic thinking. Products can be new systems (an object-oriented program, a web application with a database, a game, a mobile app, a simulation, a stand-alone application) or new functionality added to an existing system (connecting web pages to a database, a plug-in, a function for a learning platform such as Moodle). Some products are ruled out because they show no algorithmic thinking of your own.
Not acceptable | Why |
|---|---|
A product made only from copied code | None of the algorithmic thinking is yours |
A website built from a template that fixes its structure and layout | The design and structure are not yours |
Exemplar products or templates supplied with software, such as the Northwind sample database in Microsoft Access | They are ready-made demonstrations |
A copied game without major, documented changes to its code | The original author did the work |
An app made with a builder, wizard or drag-and-drop tool and no code | There is no code to assess |
A product that breaks the ethical guidelines | Consent, data security and data use rules apply to every IA |
Using libraries and frameworks is allowed and often sensible. The booking system uses the Flask web framework and the sqlite3 database module from Python's standard library; what matters is that the logic of the problem (the clash test, the weekly limit, the release of no-shows, the report) is designed and written by you, and that every library is acknowledged. Choosing a problem and a client covers complexity, feasibility and ethics in detail.
Your teacher is involved from the first idea to the final mark, but the work must be entirely yours. The IB expects teachers to explain the task and the criteria, discuss the project with you as it develops, and check that the work is authentic. You are encouraged to ask for advice, and asking is never penalised.
The teacher can | The teacher cannot |
|---|---|
Explain the requirements and the criteria | Write, correct or edit any part of your documentation or code |
Discuss your idea, your plan, your design and your testing | Give feedback on more than one draft |
Read one draft and give oral or written advice on how to improve it | Accept a further draft: the next version you hand in is the final one |
Ask you to explain your work, to check that it is yours | Authenticate work they believe is not your own |
Mark the final work against the criteria | Let you withdraw the final version once it has been submitted |
The one-draft rule shapes the whole timeline. Feedback on a draft is most useful when the draft is complete, so a draft handed in with Criterion E missing wastes the only chance you have to hear what is weak in it. Once you submit the final version and confirm it is your own work, it cannot be withdrawn.
The teacher must confirm that every student's work is authentic, not only the work sent to the IB as a sample. They can do this by talking to you about the content, and by comparing the final work with your initial proposal, your first draft, the references you cite and the style of writing they know is yours. Plagiarism-detection software can also be used. Any code you did not write yourself, whether it comes from a website, another person or an AI tool, must be acknowledged as someone else's work, and you must be able to explain every part of your product. Documentation and academic integrity covers citing sources and tools.
The same piece of work cannot be used for both the IA and the extended essay. If your extended essay is in computer science, its research question and the IA problem must be different pieces of work.
The IB recommends 35 hours of teaching time for the IA. That time includes your teacher explaining the task, class time to work and ask questions, one-to-one consultations, and time for your teacher to monitor progress and check authenticity. Most students also need time outside lessons for coding and testing, which is the part of the project that grows most when something goes wrong.
Your school sets its own internal deadlines, working back from the date on which marks and samples go to the IB. The table is an example of how the stages can be spread over a school year; adjust the months to your school's calendar, and keep the order.
When (example) | Stage | What you produce | Criterion |
|---|---|---|---|
Months 1–2 | Explore ideas, meet the client, get consent | A short proposal approved by your teacher | Groundwork for A |
Month 2 | Specify the problem | Problem scenario, requirements, numbered success criteria, computational context | A |
Month 3 | Decompose and plan | Decomposition diagram, dated plan linked to the success criteria | B |
Months 3–4 | Design | System model (diagrams, user interface), algorithms, test plan | C |
Months 4–7 | Build in short cycles | Working product, tested feature by feature | D |
Month 7 | Final testing and client trial | Test results for every success criterion, client feedback | D, E |
Month 8 | Video and evaluation | The video, the evaluation, the complete draft | D, E |
Month 8 | One draft to your teacher | Oral or written advice | All |
Month 9 | Final version | Three files, word count on page 1 | All |
Development takes the largest share of the calendar, but A, B and C come first for a reason. A product built before its success criteria exist tends to have criteria written afterwards to fit it, and those criteria are rarely measurable or complete.
Most lost marks come from a small set of repeated problems. Each one is covered in detail in the note for its criterion; the table gathers them so you can check your work against all of them at once.
Pitfall | Criteria affected | Fix |
|---|---|---|
A problem too simple to need real algorithms (only adding, editing and showing records) | A, C, D | Choose a problem with rules to enforce, calculations, searching, scheduling or simulation |
Success criteria that cannot be measured ("easy to use", "fast") | A, then B to E | Give each one a number or a yes-or-no behaviour that a test can check |
A plan with no dates, or one not linked to the success criteria | B | Date every phase and tag every task with the criteria it serves |
No user interface design in the system model, or algorithms mixed into the model | C | Draw the interface; keep algorithms in their own part |
A test plan with only valid data | C, D | Add boundary and erroneous data and an efficiency test for each relevant criterion |
Code described line by line, with no reasons for the choices | D | Say what you chose, why, and how it compares with an alternative |
No full source code in the appendices | D | Put every source file in the appendices PDF |
A video over 5 minutes, or slides instead of the running product | D | Script it around the success criteria and show the product working |
An evaluation that lists features without returning to the success criteria | E | Judge each success criterion in turn, with evidence |
I can explain the difference between the product and the solution.
I know the three files, their formats and limits: documentation PDF (2,000 words, count on page 1), video (up to 5 minutes), appendices PDF (full source code).
I know what does not count towards the word limit: code excerpts, their comments and diagrams.
I can name the five criteria with their marks: A 4, B 4, C 6, D 12, E 4.
I know the recommended words per criterion and why D gets half of them.
I can explain best-fit marking and why the command terms in each band matter.
I can link each computational thinking stage to the criterion it feeds.
I have numbered my success criteria and will use the labels in every later criterion.
I know which kinds of product are not acceptable.
I know that my teacher reads one draft only, and I plan to hand in a complete one.
I know how authenticity is checked and that I must be able to explain every part of my product.
I have a timeline with my school's deadlines and a project log.
With a free account, Augment remembers where you stopped in the notes and which questions you have marked.