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. Documentation and academic integrity

Documentation and academic integrity

Lay out the IA documentation and appendices correctly, keep within 2,000 words, cite libraries, tutorials and AI tools, use your one draft well and run a final check before you submit.

  • IB Computer Science
  • Internal assessment
  • SL and HL

18 min readLast reviewed 14 Oct 2026

The internal assessment is marked only from the files you hand in, so the product counts for as much as those files show. A product that works perfectly can still lose marks if the documentation is hard to follow, runs over the word limit, or leaves the reader unable to find the code it describes. The same submission also has to show that the work is yours and that every borrowed idea, library and line of code is acknowledged. Clear files and honest acknowledgement both serve one purpose, which is to let your teacher and the moderator check the work.

The three files you submit

The IA submission is three separate files. Each has a fixed job, and nothing in one file can stand in for something missing from another.

File

Format

What it must contain

Limits

Documentation

One PDF

Five separate sections, one for each criterion (A to E); the total word count written on the first page

At most 2,000 words, not counting code excerpts, comments or diagrams

Video

One file in a common format such as mp4, avi or wmv

The running product showing its full functionality, and examples of the testing strategy

At most five minutes

Appendices

One PDF

The full source code, plus any other resources you made that the documentation refers to

Not marked, but required for full marks for the techniques in Criterion D

The diagram of the three files shows how they depend on each other. The documentation is where the marks are earned; the video is the evidence that the product works and was tested; the appendices let anyone check that each code excerpt in the documentation comes from a real, complete program.

Three boxes: Documentation (one PDF: page 1 word count, sections A to E, at most 2,000 words, code, comments and diagrams not counted); Video (at most 5 minutes, full functionality, examples of testing); Appendices (one PDF: full source code, other resources, not marked).Three boxes: Documentation (one PDF: page 1 word count, sections A to E, at most 2,000 words, code, comments and diagrams not counted); Video (at most 5 minutes, full functionality, examples of testing); Appendices (one PDF: full source code, other resources, not marked).
Section D of the documentation leans on both other files: the video shows the tests it describes, and the appendix holds the full code its excerpts come from.

Common mistake

Treating the appendices as a place to put extra explanation. Examiners are not required to read the appendices, and they are not used to award marks, so an argument that only appears there earns nothing. Every explanation, justification and evaluation belongs in the documentation; the appendices hold the full code and the resources the documentation points to.

The appendix rule matters most for Criterion D. A submission without the full source code in an appendix cannot receive full marks for the techniques shown in that criterion, however good the excerpts are. Generate the code listing from the final version of the product, after the last bug fix, so the line numbers your excerpts cite are the real ones.

Laying out the documentation

Five sections, in criterion order

Give the documentation one heading per criterion, using the criterion names: "Criterion A: Problem specification", "Criterion B: Planning", "Criterion C: System overview", "Criterion D: Development", "Criterion E: Evaluation". Each criterion is marked against its own descriptors, so a clear boundary between sections means nothing is missed or credited to the wrong criterion. Inside each section, short subheadings help (in D, one per technique and one for testing).

A skeleton for the documentation

Page 1: project title, candidate details as your school instructs, word count

  1. Criterion A: Problem specification

    • The problem scenario and the client

    • Solution requirements and success criteria (SC1, SC2, …)

    • The computational context and why it was chosen

  2. Criterion B: Planning

    • Decomposition diagram

    • Plan with chronology (Gantt chart or sprint table), mapped to the success criteria

  3. Criterion C: System overview

    • System model (component diagram, data model, user interface designs)

    • Algorithms, one per component

    • Test plan

  4. Criterion D: Development

    • Structure of the product and why it suits the problem

    • One subheading per key technique, each with its excerpt

    • Testing: correctness, reliability, efficiency, and why the testing was enough

  5. Criterion E: Evaluation

    • Each success criterion judged against the evidence

    • Justified improvements

Bibliography

The first page carries the title of the project, your candidate details as your school instructs, and the total word count, which the IB requires on that page rather than at the end.

The word budget

The 2,000-word limit applies to the whole documentation. The IB recommends a split across the criteria, and the split shows where the marks are: Criterion D has 12 of the 30 marks and half of the words.

Criterion

Marks

Recommended words

A: Problem specification

4

300

B: Planning

4

150

C: System overview

6

150

D: Development

12

1,000

E: Evaluation

4

400

Total

30

2,000

Source: IB Computer science guide (first assessment 2027), internal assessment criteria.

The recommendations are guidance for each criterion, but the 2,000-word total is a firm limit. B and C have few words because most of their content is diagrams, tables and algorithms, which do not count. D has the most words because it is where you explain and evaluate your choices and justify your testing, which can only be done in prose.

Tip

Count the words section by section as you write, not at the end. Paste each section's prose (without code, comments or diagrams) into a word counter and keep a running tally in a comment at the top of your draft. If D is at 1,300 words, the cut is easier to make while you still remember why each sentence is there.

What counts towards the limit

The guide excludes three things from the count: code excerpts, comments and diagrams. Everything else written in sentences counts, including the prose that introduces a figure, the explanation after a code excerpt, and the evaluation in E. Headings and captions are short; check with your teacher how your school counts them, and be consistent.

Tables are a grey area. A test table of planned inputs and expected outcomes reads much like a diagram, but a table full of sentences of explanation is prose in a grid. The safe course is to keep tables to short entries (values, outcomes, "pass") and put any reasoning in the counted text around them. Moving arguments into tables, screenshots of text or code comments to dodge the limit defeats the purpose of the limit, and a teacher or moderator is likely to count it as prose.

Common mistake

Writing the explanation of a technique as a long code comment so it doesn't count. Comments are excluded so that code can be properly commented, not as a second word budget. A comment should say what a line or block does in a few words; the reason for choosing the technique and the comparison with alternatives belong in the counted prose of Criterion D.

Presenting code excerpts

Code in the documentation is evidence for Criterion D, so it has to be easy to read and easy to find in the full program. The guide asks for excerpts that are commented, consistent and readable, and that are referenced to the full source code in the appendix. A good excerpt is short (usually 5 to 25 lines), shows one technique, keeps the original indentation and identifiers, and carries a label that says where it lives.

The Python excerpt shows the format: a caption line naming the file and the lines, comments on the lines that matter, and nothing else.

Python
# Excerpt 3: bookings.py, lines 41-49 (Appendix A, p. 6)
# Times are minutes after midnight, so 10:30 is 630.
# Returns True if the new booking overlaps any booking already in the list.
def clashes(new_start, new_end, bookings):
    for start, end in bookings:
        # Two intervals overlap when each starts before the other ends
        if new_start < end and start < new_end:
            return True
    return False

print(clashes(600, 630, [(570, 600), (630, 660)]))
print(clashes(600, 630, [(570, 600), (615, 660)]))
Java version
Java
// Excerpt 3 written in Java for comparison (the product itself is in Python)
public class ClashCheck {
    // Times are minutes after midnight, so 10:30 is 630.
    // Returns true if the new booking overlaps any booking already in the list.
    static boolean clashes(int newStart, int newEnd, int[][] bookings) {
        for (int[] b : bookings) {
            // Two intervals overlap when each starts before the other ends
            if (newStart < b[1] && b[0] < newEnd) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        System.out.println(clashes(600, 630, new int[][] {{570, 600}, {630, 660}}));
        System.out.println(clashes(600, 630, new int[][] {{570, 600}, {615, 660}}));
    }
}

Run with the two sample calls (Java prints false and true in lower case), the function reports no clash for a 10:00–10:30 request between bookings that end at 10:00 and start at 10:30, and a clash when an existing booking starts at 10:15.

Plain text
False
True

In the real documentation the two print calls would not appear: they are there to show the excerpt runs. What the moderator needs is the function, the reference to Appendix A, and, in the counted text after it, why the comparison is written as new_start < end and start < new_end (it allows back-to-back bookings, as success criterion SC2 requires) and what you considered instead.

Exam tip

Moderators are not required to read the appendix, so an excerpt must make sense on its own. If an excerpt calls a function the reader hasn't seen, add one comment saying what that function returns, rather than pasting it in as well.

Figures and screenshots

Number every diagram and screenshot ("Figure 4: booking form after an invalid date") and refer to it by number in the text. Crop screenshots to the part that matters and make sure text in them is readable at normal zoom in the PDF. A screenshot of the running product can support Criterion D, but it does not replace the video: functionality and testing have to be shown in the video.

Academic integrity

The IB expects all coursework to be authentic: based on your own ideas, with the ideas and work of others fully acknowledged. For a programming project that covers far more than essays. Code, libraries, tutorials, images, icons, data sets, sample databases and help from AI tools are all the work of someone else, and all need acknowledging.

Definition

Academic integrity: honest and responsible conduct in academic work, in which submitted work is authentic and the student's own, and the ideas and work of others are fully acknowledged.

The IB treats a failure to acknowledge a source as a potential breach of its regulations, which can lead to a penalty.

Citing your sources

The IB does not prescribe a referencing style. Your school chooses one (APA, MLA, Harvard and others are common), and you use it consistently. Whatever the style, each reference gives at least the author, the date of publication, the title of the source and page numbers where they apply, and for an online source, the date you accessed it.

Definition

Citation: a short acknowledgement at the point where a source is used, which points the reader to a full entry for that source in a bibliography or reference list.

In a program, a citation is usually a comment next to the borrowed or adapted code.

Programming projects need citations in two places. In the documentation, cite a source where you use it (for example, when you explain that a library handles password hashing). In the source code, put a comment above any block you copied or adapted, naming the source and saying what you changed. Both point to the same entry in the bibliography at the end of the documentation.

The citation trail diagram follows one adapted function from the code comment to the bibliography.

Documentation text citing [4] and Excerpt 3 (Appendix A, lines 41–49) points to Appendix A, where lines 38–40 are a comment 'Adapted from [4]: overlap test, changed to allow back-to-back'. Both point to bibliography entry [4]: author, date, title, URL, access date.Documentation text citing [4] and Excerpt 3 (Appendix A, lines 41–49) points to Appendix A, where lines 38–40 are a comment 'Adapted from [4]: overlap test, changed to allow back-to-back'. Both point to bibliography entry [4]: author, date, title, URL, access date.
Every borrowed idea can be followed from where it is used to a full reference, and every excerpt to its place in the full code.

What needs a citation in an IA:

Source

Cite it?

Where

A third-party library or framework (Flask, Pandas, JavaFX, a charting library)

Yes

Bibliography; name it in Criterion B or D where you explain why you used it

The language's standard library (Python's sqlite3, Java's ArrayList)

Not usually as a source of code, but cite the documentation if you followed an example from it

Code comment and bibliography

Code copied or adapted from a tutorial, textbook, forum answer or repository

Yes, always

Comment above the code, and bibliography

An algorithm learned from a source (an overlap test, a hashing scheme) and written yourself

Yes, cite the source of the idea

Documentation where you describe it, and bibliography

Images, icons, fonts, sound or data sets you did not make

Yes, with their licence

Bibliography; a credit line in the product where the licence requires it

Output, code or text from an AI tool

Yes

Comment or in-text citation where it is used, and bibliography

Advice from your teacher on your one draft

No

Normal guidance does not need citing

Worked example

A student adapted a function that checks whether a username is valid from an answer on a programming forum. They changed the allowed characters and added a length limit. Write the comment that should sit above the function, and state what goes in the bibliography.

Show the solution

A comment names the source, gives the bibliography number, and says what was changed, so a reader can tell which parts are the student's own:

Python
# Adapted from [7]: regular-expression username check.
# Changes: allowed characters reduced to letters, digits and "_";
# length limited to 3-20 characters to match success criterion 2.

The bibliography entry [7] gives the author's user name, the date of the answer, the title of the question it answers, the full URL and the date the student accessed it. In the documentation, the student says in Criterion D that the check is adapted from [7], and explains the changes as their own design decision.

Plagiarism and collusion

Most academic misconduct in programming projects starts as a shortcut: a block of code copied from a tutorial to get past a bug, a friend's working solution borrowed "just to see how it works", a generated function pasted in without a note. Once submitted without acknowledgement, each of these is presented as your own work.

Definition

Plagiarism: presenting the words, ideas, code, images or other work of another person or source as your own, without acknowledging where they came from.

Collusion is the related offence of working with another student so that one person's work is submitted, in whole or part, as another's.

Collaboration and collusion are different. Discussing ideas with classmates, testing each other's products and helping someone understand an error message are normal parts of learning, unless your teacher has said otherwise. Writing part of someone else's product, or submitting code that another student wrote for you, is collusion. Where your teacher allows collaboration, ask exactly where the line is before you start.

The guide is also clear on what kind of product is acceptable. A product built only from copied code, a website from a template that fixes its structure and layout, an exemplar database shipped with software (such as the Northwind database in Microsoft Access), a copied game without major documented changes, or an app made with a drag-and-drop builder and no code development is not appropriate for the IA, even if every source is cited.

Common mistake

Thinking that a citation makes any amount of copied code acceptable. A citation avoids plagiarism, but marks in Criterion D are for the techniques you used to implement your own algorithms. A product that is mostly cited third-party code is honest and still earns little, because there is little of your own development to credit.

Using AI tools

Output from an AI tool such as a chatbot or code assistant is not your own work, so the general rule for sources applies to it. If you use any AI output in your IA (code, text, an image, a test data set), acknowledge it in the same way as any other source, with a citation where it is used and an entry in the bibliography. Presenting AI output as your own work is plagiarism, like presenting any other unacknowledged source as your own.

Beyond that general principle, each school sets its own rules, and they can change. A school might forbid AI tools for the IA altogether, or allow them only for some uses, such as explaining an error message, with a record of each use. Follow your school's policy and your teacher's instructions, and ask before you use a tool if you are not sure. Where use is allowed, a sensible record is the name and version of the tool, the date, what you asked, and which part of the output you used and how you changed it.

Tip

Whatever tool you use, you must be able to explain every line of your product. Authenticity can be checked by discussing the work with you, so if a block of code came from a tutorial or a tool and you could not explain how it works, rewrite it until you can, or leave it out.

Linking question: How does acknowledging sources in an IA connect to software licences in professional work? Open-source licences such as MIT or GPL allow reuse only on conditions, which often include keeping the original copyright notice. Citing a library in the bibliography is the academic version of the same obligation: the borrower states what was borrowed and from whom.

The draft, authenticity and submission

One draft, one round of advice

Your teacher reads and gives advice on one draft of the work. The advice can be spoken or written, and it says how the work could be improved; the teacher does not edit the draft. The next version you hand in is the final version for submission. There is no second round of comments, so the draft you give your teacher should be complete: every criterion written, the product working, testing done and the video at least planned.

The timeline of the sample booking-system project (the practice-room booking system for a school music department used on every IA page) shows where the draft sits.

16-week timeline of the sample booking-system project: A, B, C in weeks 1–4, development in 4 sprints to week 11, testing and trial weeks 12–13, video and evaluation week 14, complete draft to teacher, one round of advice, revision week 15, final version week 16.16-week timeline of the sample booking-system project: A, B, C in weeks 1–4, development in 4 sprints to week 11, testing and trial weeks 12–13, video and evaluation week 14, complete draft to teacher, one round of advice, revision week 15, final version week 16.
The single round of teacher advice comes after a complete draft; everything after it is your own revision towards the final version.

Worked example

Two students hand in drafts. Student P's draft has Criteria A to C finished, D half written with no testing, and no evaluation. Student Q's draft has all five sections, a complete test table with results, and an evaluation, but it is 2,350 words. Explain which student gets more value from the teacher's one round of advice.

Show the solution

Student Q gets more value. The teacher can comment on every criterion, including the testing (one of the four strands of Criterion D) and the evaluation (all of Criterion E), and can point out where the 350 extra words could be cut. Student P's teacher cannot advise on the testing or the evaluation because they don't exist yet, so P will write them after the only round of advice, with no feedback on either.

How authenticity is checked

You confirm that the work is your own and that it is the final version, and your teacher authenticates it before submission. Once the final version is submitted, it cannot be withdrawn. Teachers can check authenticity by discussing the content of the work with you and by comparing it with your initial proposal, your first draft, the references you cite and your usual style of writing, and by running it through a plagiarism-detection service.

For a programming project, a discussion is the most direct check. A teacher can ask you to explain why a loop ends where it does, to change a feature on the spot, or to say what would happen with a different input. Keeping a development log (dated notes of what you built, what broke and how you fixed it), and committing your code regularly to version control, gives you evidence of how the product grew.

Exam tip

The same piece of work cannot be submitted for both the IA and the extended essay. If your extended essay is in computer science, keep the two projects clearly separate in topic and product.

Ethics in the documentation

Ethical requirements are part of what makes a product acceptable at all, and the documentation should show you met them. If people were involved (a client, testers, people whose data the product holds), you need their consent before the investigation begins. If you work with someone's existing system, you need the owner's written consent. Collected data must be stored securely and used only for the product, and the IB encourages original data wherever possible. A short statement in Criterion A, and the consent forms kept by your teacher or in the appendices (as your teacher instructs), covers this.

Tip

Improve your notes: Start your bibliography on the first day of the project, not the last. Each time you open a tutorial, documentation page, forum answer or AI tool and use something from it, add the entry and the access date immediately, and put the matching comment in your code.

Final self-assessment

The check below is built from the criterion descriptors. Go through it with the final PDF open, not your notes, and fix anything that is missing before you submit.

Criterion

Ask yourself

A

Is every solution requirement measurable? Is every success criterion something you can test (a number, a yes/no behaviour)? Have you explained why your computational context fits the problem?

B

Does the decomposition cover every part the success criteria need? Does the plan have a chronology through design, development, testing and evaluation, and does it refer to each success criterion?

C

Do the diagrams show every component, how they connect and the user interface? Is there an algorithm for each component? Does the test plan cover all the success criteria, including invalid and boundary input?

D

Does every feature appear working in the video? For each key technique, have you said what you chose, why, and how it compares with alternatives? Did you test correctness, reliability and efficiency, and argue why the testing was enough? Is every excerpt commented and referenced to the appendix?

E

For every success criterion, have you judged whether it was met, partly met or not met, with evidence? Is each improvement tied to a shortfall or to feedback, with a reason?

Then the format checks:

  • The documentation is one PDF with five sections and the word count on page 1, at most 2,000 words.

  • The video is one file in a common format, at most five minutes, showing the running product and examples of testing.

  • The appendices are one PDF containing the full, final source code and the other resources the documentation refers to.

  • Every library, tutorial, image, data set and AI use is cited where it is used and listed in the bibliography.

  • Every excerpt's file name and line numbers match the appendix.

Computational thinking: The final self-assessment is a form of testing applied to the documentation. Each criterion becomes a set of yes/no checks with an expected outcome, and any failure is fixed and rechecked, in the same way as a test plan for the product.

Checklist

  • To do:

    I know what goes in each of the three files and the limits on each.

  • To do:

    My documentation has five sections, one per criterion, and the word count on page 1.

  • To do:

    I am within 2,000 words, with D at about 1,000, and I have not hidden prose in comments or tables.

  • To do:

    Every code excerpt is short, commented and labelled with its file, lines and appendix page.

  • To do:

    The appendix holds the full source code of the final version.

  • To do:

    I have cited every library, tutorial, forum answer, image, data set and AI tool I used, in the code and in the bibliography, in one consistent style with access dates.

  • To do:

    I know and follow my school's rules on AI tools, and I can explain every line of my product.

  • To do:

    I have handed my teacher a complete draft for the one round of advice.

  • To do:

    I have consent for everyone involved and written consent for any existing system I used.

  • To do:

    I have gone through the final self-assessment with the finished PDF.

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

  • Criterion E and the videoThe page before this.
  • 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