Internal assessment
For the new IB Diploma Computer Science syllabus to start teaching in August 2025, and for first examinations in May 2027.
- Choosing a project
- Understand the assessment crtieria
- Timeline
- Using artificial intelligence large-language-models
- Changes from old syllabus IA
- Other resources
Welcome to the Computer Science Internal Assessment!
I’m going to start with a controversial statement: The Computer Science Internal Assessment can be fun!
For the nerd in you, it is a good excuse to build a programming project where you learn new things, and create something that you can be really proud of.
Past students regularly cite their CS IA extensively in their personal statements, and have commented to me that it was the thing they were most proud of and enjoyed the most from their time in CS.
You are going to get a couple of months of class time to make something cool of your own choosing!
Yes, it is an assessment. Yes, some of the documentation requirements can be a little onerous. Yes, forums like Reddit love to hate on the IA. But!!!! - It can be enjoyable! Embrace it, ensure you stay organised, and it will be ok. Mindset matters.
This pack has been designed to help guide you through the process, addressing many of the issues I’ve seen appear over the years. Please use it in conjunction with maintaining close collaboration with me.
Choosing a project
Do not start with the question, “what project do I want to make?” - that is a question for a personal programming project, not your IA.
Step 1: What is an interesting algorithm in Computer Science?
Take a couple of hours to research different algorithms. Find an algorithm that interests you before anything else.
For my studdents, we shall dedicate a couple of lessons to this exercise. You will present what you have learnt about an algorithm to the class! Your presentation shall consist of:
- What algorithm have you studied?
- A brief history of the algorithm.
- What problems does the algorithm solve?
- Why the algorithm appeals to you.
Step 2: What is a project that will allow you to showcase and demonstrate your understanding of that algorithm?
Come up with a project that answers that question, and you are on your way to a great IA.
Step 3: Adjust based on the following
Some general advice and tips that comes from having guided students through this for over 10 years:
-
The 80% rule: Choose a problem that you are 80% confident in being able to solve. This provides a good mix of confidently being able to deliver on what you set out to achieve, with a little bit of a stretch to learn and demonstrate something new.
-
Learning is expected: Higher achieving assessments will have technical learning (algorithms or data structures) that go beyond the course syllabus. The course guide allocates 35 hours of class time to this IA and, while it is an assessment, all assessments are also learning experiences.
-
Technology stack: Sometimes students decide to use a programming language or framework they’ve never used before and get stuck. Challenge is ok, but don’t risk jeopardising your assessment. Talk it through with me before making that decision.
-
Games: Yes you can make a game, and they often make great Internal Assessments! Build your own twist on a classic game! A personalised version with your own objectives, perhaps an educational game. Add a path finding algorithm, or a little machine learning such as a bot to play against, or some multiplayer networking, and you have a very technical IA.
-
Hardware projects: Students often ask if they can make robots, use Raspberry Pi’s and so forth. Yes, but with a catch. You won’t receive credit for it. The Computer Science IA is graded on your software skills, specifically algorithms. You can incorporate hardware but the time spent on it is just for the love of the project, not for academic credit.
-
Avoid CRUD based projects: Webapps / apps that are little more than a front-end to a CRUD (create-read-update-delete) database. These have all been done to death. This includes: Blogs, To do / task management apps, Room booking / appointment booking apps, Inventory / equipment loans / library apps. There is little algorithmically going on here. Be more creative than that.
-
Ideas and algorithms to consider - if you are lost for ideas
Understand the assessment crtieria
The Internal Assessment criteria are as follows:
| Criterion | Deliverables | Word count |
|---|---|---|
| Criteria A | Scenario / computational context / success criteria | 300 words |
| Criteria B | Decomposition and planning overview (eg: Project structure chart, GANTT chart) | 150 words plus diagrams |
| Criteria C | System overview (system model, algorithm designs, testing strategy) | 150 words plus diagrams |
| Criteria D | Development document (functional product, algorithms implemented and evaluated, testing strategy effectiveness) | 1000 words |
| Criteria D | Demonstration video (functionality, algorithms demonstrated, testing highlights) | 5 minute video |
| Criteria E | Evaluation and recommendations | 400 words |
Be sure to study the detailed Assessment criteria rubrics to understand how you will be assessed.
For detailed checklists, tips, common mistakes and so forth, along with exemplar work from previous students, please consider purchasing the Hachette book, “Computer Science for the IB Diploma”.
The book includes a 40 page chapter for the Internal Assessment. For each of the 5 criteria, it includes:
- IB assessment criteria statements
- Top tips
- Common mistakes
- Exemplar samples from real student IA’s, re-worked for the new syllabus (separate to the IB authored samples)
- Detailed checklists
Those who found my previous guide to the IA for the previous syllabus useful, should find the chapter in the Hachette textbook very helpful for navigating the new IA.
Timeline
The following is the indicative timeline I use with my classes.
I give my students all the classtime from the SL lessons of Term 3 of Year 1, after which we resume regular lessons with the IA happening in the background.
| Deliverable | Due date |
|---|---|
| Proposal document | End of week 1 |
| Criterion A - rough draft (enough to show you have thought about the questions involved) | End of week 1 |
| Criterion B - rough draft | End of week 2 |
| Criterion C - rough draft | End of week 3 |
| Programming - Foundations Setup the core structure, libraries installed and working, hello world implementation / getting started exercises functional | End of week 4 |
| Programming - Minimum viable product (20% complete) Key algorithm(s) implemented and tested | End of week 6 |
| Programming - Progress submission #1 (40% complete) | End of week 8 |
| Programming - Progress submission #2 (70% complete) | Before Summer break |
| Programming - 90% complete submission Includes an informal screen recording demonstration All key features complete Final testing and debugging remains | End of August |
| Criterion D - Outline of proposed key points | End of August |
| Full Internal Assessment - Formal draft | End of September |
| Full Internal Assessment - Final submission | Before Winter break |
Using artificial intelligence large-language-models
The Computer Science Internal Assessment is no different than any other IB assessment. It is subject to the same Academic Integrity Policy as everything else, including Appendix 6: Guidance on the use of artificial intelligence tools (2023), which states:
…students need to be aware that the IB does not regard any work produced - even only in part—by such tools to be their own. Therefore, as with any quote or material from another source, it must be clear that any AI-generated text, image or graph included in a piece of work has been copied from such software. The software must be credited in the body of the text and appropriately referenced in the bibliography. If this is not done, the student would be misrepresenting content - as it was not originally written by them - which is a form of academic misconduct.
Does this mean I can use LLM generated programming code in my IA?
That’s the same as asking “Can I use code sourced from Google, Stackoverflow, or Github?” Sure, if it is appropriately referenced, you can use some externally sourced code. Would you want your entire IA to be code from these sources? No!
That said, the vast majority of the programming code should be your own independently produced work. The IA is an opportunity for you to showcase your personal programming expertise, not your ability to copy-and-paste someone else’s code.
TL;DR
AI tools can be used and are treated the same as any other resource that students may use. They should be fully and properly cited and referenced at all times. Failure to do so risks breaching the Academic Integrity Policy.
Changes from old syllabus IA
For those familar with the Internal Assessment of the old syllabus, the following are some noteworthy changes:
-
Students no longer require a client; They are producing the IA for themselves now. This is a positive move as there was always a tension between client needs and what the student needed from a project for their assessment. Now, students can select a project that both (a) interests them and (b) allows them to best showcase their algorithmic talnet.
-
The overall size and scope of the IA is roughly comparable to the old course. I anticipate my students still requiring considerable “at home” hours to complete the IA.
-
New criteria D is focused on students discussing their techniques used, with a specific focus on algorithms. While similar to the old criteria C, it is more explicit that the focus is algorithms which should help make the expectations clearer.
Other resources
- Official samples and past student exemplars - learn from those who have gone before you
- Strategies to manage the IA - tips for staying organised and managing your first real large programming project.
- Tips for teachers (based on the old IA - will be updated in due course for the new IA)