Your appendix
One PDF fileNot markedNeeded for full marks in Criterion D
The appendix holds your full source code and the other resources you made and refer to in the documentation. It earns no marks itself, but without it you cannot get full marks for the techniques in Criterion D.
What you need to produce
- The full, commented source code of your product, with line numbers that match your code screenshots
- Any other resources you developed and refer to in your documentation (test results, data files, sample outputs)
Labels show where each piece of guidance comes from:
IB requirement From the official IB Computer Science guide (IA_details.pdf)IA Guide Recommendation from the IA Documentation Guide (your teacher's analysis of IB exemplars)Teaching tip Extra suggestion added by this website
What the IB requires
- IB requirementThe appendices are submitted as a single PDF file.
- IB requirementThey must include the full source code and any other resources you developed that are referred to in the documentation.
- IB requirementLike the documentation, it must be anonymous: no name, session number or school in it, including headers and footers (IB Assessment procedures 2027). Number the pages.
- IB requirementThe appendices are not used as evidence for awarding marks, and examiners are not required to read them.
- IB requirementA solution without an appendix containing the full source code cannot be awarded full marks for the techniques demonstrated in Criterion D.
- IB requirementCode excerpts in the documentation must be referenced to the full source code in the appendix, and any code presented must include relevant comments, be consistent and be readable.
What this means. Because the examiner may never open your appendix, anything you need for marks must be in the documentation or the video: the key code excerpts, the key test results and the screenshots you refer to. The appendix is the complete record behind them.
What to put in it
| Part | Contents | Why |
|---|---|---|
| Contents page | Each part and file with its page numbers | Your code screenshots give a page; the examiner can find it at once Teaching tip |
| A · Source code | Every file you wrote, each starting on a new page with its file name, with line numbers, in the order of your structure diagram (Criterion C) | Required by the IB; the line numbers must match the screenshots in Criterion D IB requirement |
| B · Test evidence | The full results of your test plan, test output and before-and-after screenshots | The documentation shows the key results; this is the complete record IA Guide |
| C · Other resources | Things you made and refer to: a database schema, data files you created, sample outputs such as a report | Required if you refer to them in the documentation IB requirement |
| D · Consultation | Interview notes, written feedback and consent, if you worked with a real person | Supports Criteria A and E; include only with their consent Teaching tip |
- Teaching tipClearly mark any code you did not write yourself, such as a template, a tutorial excerpt or AI-generated code, and say where it came from.
- Teaching tipLeave out installed libraries and frameworks (Flask itself, for example) and generated files, but name them, with versions, in a short note at the start of part A.
- Teaching tipNever include real personal data, such as a list of real students: use test data.
Making the source-code PDF
- Teaching tipExport with line numbers, and check they match the numbers in your Criterion D screenshots. If you change the code later, update both.
- Teaching tipUse a monospaced font at a readable size, and avoid lines so long that they wrap or are cut off.
- Teaching tipStart each file on a new page with its file name as a heading, and number the pages.
- Teaching tipMost editors can print to PDF with line numbers; a code-to-PDF tool or extension that keeps syntax colouring works too. Merge everything into one PDF at the end.
- Teaching tipRead through your comments before you export: they should explain why, not repeat the code.
Worked example: PracticePal's appendix
The contents page of the fictional PracticePal appendix, and the first page of rules.py. The Criterion D figures refer to these pages, for example “rules.py, lines 32–51 (Appendix A, p. 4)”.
| Part | Contents | Pages |
|---|---|---|
| A1–A8 | app.py, views.py, rules.py (p. 4–6), waitlist.py (p. 7), db.py (p. 8), scheduler.py (p. 9), auth.py, reports.py (p. 11) | 1–11 |
| A9 | schema.sql (CREATE TABLE statements) | 12 |
| A10 | templates/ and static/ (HTML, week.js, style.css) | 13–16 |
| A11 | tests/ (pytest unit tests for rules.py and waitlist.py) | 17–19 |
| B | Test results T1–T14 with output and screenshots, including the before-and-after output of T6 | 20–27 |
| C | Room and wall data (rooms.csv); sample usage report for week 45 (CSV) | 28–29 |
| D | Ms Okafor's interview notes, written feedback and consent | 30–32 |
1"""rules.py: the booking rules (SC4, SC5, SC6).
2Every rule takes the database connection so it can be tested
3without the web pages (see tests/test_rules.py)."""
4
5import sqlite3
6import db
7from config import SLOT, WEEKLY_LIMIT # SLOT = 30 minutes, WEEKLY_LIMIT = 3
8
9def check_rules(con, student, room, start, end, loud):
10 """Return the reason a booking is refused, or None if it is allowed."""
11 if db.count_week_bookings(con, student, start) >= WEEKLY_LIMIT: # ISO week
12 return 'Weekly limit reached (3 bookings)'
Illustrative only: PracticePal is a fictional project.
Lessons from the IB exemplars
From the IA Documentation Guide's analysis of real, examiner-graded IB Computer Science IAs.
- Code without comments was named in the examiner's overall comment on 5 of the 8 IB exemplars (Examples 2, 3, 5, 6 and 8).For your IA: Comment the code in your appendix as well as the excerpts you show.
- Example 1 (10/12 in D): its appendix lists the code with line numbers and well over a hundred comments; the examiner wrote “Code is clear and well documented”.For your IA: Line numbers and comments make the appendix easy to check against your screenshots.
- Example 6 (10/12 in D) gives its source as one continuous listing headed “Complete Source Code”, with no line numbers and no comments; the examiner noted “Code has been included without comments”.For your IA: Start each file on a new page with its name, and add line numbers.
Completion checklist
Ticks are saved in this browser only, so you can use the list while you draft.