FAQ of the changes in the 2027 syllabus
An overview of key changes and answers to anticipated frequently asked questions. Will be updated as required.
For the new IB Diploma Computer Science syllabus to start teaching in August 2025, and for first examinations in May 2027.
THIS IS NOT OFFICIAL INFORMATION. IT MAY CONTAIN ERRORS OR OMISSIONS. PLEASE DO YOUR OWN RESEARCH AND PREPARATION FOR THE NEW COURSE
- The basics
- Programming languages: Pseudocode, Java, Python
- Exams
- Case study
- Internal assessment
- Planning / sequencing lesson content
- Resources
The basics
Where can I get the new syllabus?
The official syllabus and teacher support materials published by the IB are available to IB teachers at https://resources.ibo.org/dp/subject/Computer-science-2027/?
Quick summary of unit content?
This is obviously imprecise as it over simplifies things, but may be a helpful summary nevertheless. HL content in italics.
-
A1 Computer fundamentals (11 hours SL, 18 hours HL)
CPU structure, GPUs, pipelining, memory, fetch-decode-execute cycle), SaaS/PaaS, Binary & hexadecimal number systems; logic gates, truth tables, circuit diagrams; Operating systems & resource management, control systems, compilers/interpreters. -
A2 Networks (11 hours SL, 18 hours HL)
Devices, client/server v peer, topologies, protocols (tcp/ip, ip4/ip6, http, dns), switching, routing, security vulnerabilities & countermeasures, encryption & certificates. -
A3 Databases (11 hours SL, 18 hours HL)
Schema, relational databases, ERD, 1NF/2NF/3NF, SQL including joins, update/insert, aggregate functions, views, transactions, data warehousing. -
A4 Machine learning (5 hours SL, 18 hours HL)
Hardware, types of ML, preprocessing, linear regression, classification, hyperparameters, unsupervised clustering, association rule, reinforcement learning, genetic algorithms, ANNs, CNNs, ethical challenges. -
B1 Computational thinking (5 hours SL, 5 hours HL)
Abstraction, algorithm design, decomposition, pattern recognition, trace flowcharts. -
B2 Programming (40 hours SL, 42 hours HL)
Data types and their operations, selection, iteration, functions, static/dynamic structures, arrays/lists, stacks, queues, big O, sorting algorithms, recursion, file processing. -
B3 Object oriented programming (7 hours SL, 23 hours HL)
Classes/objects, constructors, static/non-static, encapsulation, inheritance, polymorphism, abstract classes, composition/aggregation, design patterns. -
B4 Abstract data structures (0 hours SL, 23 hours HL)
Linked lists (singular, double, circular), binary search trees, hash-maps, sets. -
Case study (15 hours SL, 30 hours HL)
An annually changing case study that prompts students to research into a field of emerging technology. SL students will have two challenge questions for research, HL students will have four challenge questions for research.
Are there resources I can use for a student information event?
-
The IB course guide is a summary that is available here
https://www.ibo.org/university-admission/latest-curriculum-updates/computer-science-updates/ -
This is the poster I have created for use in my school, feel free to adapt:
https://pbaumgarten.com/assets/ib-course-overview-poster-2025.pdf
Programming languages: Pseudocode, Java, Python
Summary of the changes regarding languages?
-
Pseudocode is gone. In theory it was there so that schools could teach in any language if they weren’t delivering Option D OOP. In reality, most taught D, so most taught Java. Now that the course specifically mandates either Python or Java, there is no need for a make-pretend language and all the confusion over what was allowable or not.
-
When sitting paper 2, students will have an option of a Python version or a Java version. The papers will be asking near enough to identical questions, just the syntax of code extracts will be different.The IB has deliberately written the course in such a way so that the accessible content will be the same across both. In particular:
-
ArrayLists (Java) and Lists (Python) are to be studied along with the idea of arrays (see B2.2.2)
-
Object oriented programming does not include method overloading (since this does not exist in Python). Encapsulation, inheritance, overriding, and abstract classes are all achievable in Python (admittedly the access modifiers in Python are a game of “let’s pretend” under the hood, but it’s enough for the purposes of the course).
What about Python functions such as sum() min() max() sort()?
Important note about Python regarding the exams from the guide (page 49/50):
The Python programming language has a number of built-in functions that can help with finding solutions to common computational challenges. The use of functions such as sort, pop, len, max and min can be very useful when programming algorithms and their use is encouraged in tasks such as the IA (the computational solution). However, in order to assess the full range of students’ abilities, certain questions in the examination will prohibit specific built-in functions. These instances will be clearly indicated in the examination papers.
Comment: The sample exams don’t include any questions that illustrate where these functions are not permitted, but it is easy enough to understand the principle behind this comment. The syllabus requires students to learn algorithms such as bubble sort, selection sort, quick sort (HL), as well as linear search, binary search and so forth.
It would trivialise the problem to have exam questions asking students to write a sort algorithm if they can just use Python’s sort(). The same applies to other common algorithms such as calculating the average, or finding the range of values in a list etc.
eg: An exam response of return sum(data) / len(data),
or return max(data) - min(data) is not going to be acceptable in these cases. Students will need to know how to write these algorithms properly.
Should I teach Python or Java?
The age old debate!
Each choice comes with pros and cons. You are going to have to decide what is right in your context. Some thoughts:
- Python tends to be easier / quicker for beginning students to pick up
- Python is immeasurably more popular for developing the IA
- Python would allow for increased programming based experimentation of the concepts in the A topics such as implementing machine learning thanks to libraries such as numpy, pandas, sci-kit learn, matplotlib and tensorflow. Databases and Networking can be done in both, it is quicker to do in Python.
- Java is clearer, safer and provides a more intentional understanding of typing
- Java is still clearer and cleaner when it comes to concepts such as OOP
- Java can be used for creating native Android applications for the IA
Thankfully I think the course writers have done a good job of designing the syllabus in such a way that Python v Java really won’t make any difference in the exams, so feel free to make your own choice.
Where can I get programming exercises suitable for the course?
There are a lot of online platforms filled with programming exercises that can be used. Explore and find the ones that work best for you. Some of the ones I’ve used before include:
-
Snakify
Learn Python 3 and web design with 200+ exercises
https://snakify.org/en/ -
Code Step By Step
CodeStepByStep is an online coding practice tool that has thousands of exercises to help you learn and practice programming in a variety of popular languages.
Java: https://www.codestepbystep.com/r/problem/list/java
Python: https://www.codestepbystep.com/r/problem/list/python -
Coding Bat
CodingBat is a free site of live coding problems to build coding skill in Java and Python (example problem). CodingBat is a project by Nick Parlante, a computer science lecturer at Stanford.
Java: https://codingbat.com/java
Python: https://codingbat.com/python -
Exercism
We’re building a place where anyone can learn and master programming for free, without ever feeling lost or stupid. Exercism’s Java Track for access to 148 exercises grouped into 25 Java Concepts
Java (148 exercises, 25 concepts): https://exercism.org/tracks/java/exercises
Python (140 exercises, 17 concepts): https://exercism.org/tracks/python -
Time 2 code
Time2code has been specifically written for the IGCSE course and is used by 100s of schools. Each lesson has written material, video demonstrations, example code to replicate, and exercises. Put aside a couple of hours a week to work through the online course and share your results with me.
Python: https://time2code.today/python-course
And, of course, there’s plenty of exercises that would be suitable for the more difficult parts of the course (ADTs) at:
Finally if you want to pay for online platforms there’s sites such as
Exams
What is the structure of the exams?
Content | SL | HL | |
---|---|---|---|
Paper 1 | A1 Computer fundamentals A2 Networks A3 Databases A4 Machine Learning Case study | 35% of grade 1:15 hours duration 50 marks total 38 marks A1/A2/A3/A4 12 marks Case study | 40% of grade 2 hours duration 80 marks total 56 marks A1/A2/A3/A4 24 marks Case study |
Paper 2 | B1 Computational thinking B2 Programming B3 OOP B4 ADT There are two versions of paper 2, one for students who have studied Python, one for students who have studied Java. | 35% of grade 1:15 hours duration 50 marks total One of the questions will focus on algorithmic thinking without the need to interpret or write code. | 40% of grade 2 hours duration 80 marks total Two questions from the SL paper will be repeated in the HL paper, including a question with a focus on algorithmic thinking without the need to interpret or write code. Additional questions will focus on HL-only topics. |
IA | Self selected programming project and documentation | 30% of grade 35 hours class time | 20% of grade 35 hours class time |
Case study
Case study for SL and HL, but different number of hours?
Yes 15 hours for SL, 30 hours for HL.
Same case study but different depth?
Yes. 2 challenge questions that are SL (also studied by HL) and an additional 2 challenge questions specifically for HL.
Internal assessment
What are the main changes to the IA?
- Hours allocated to the IA have changed from 30 to 35 hours of recommended class time.
- Students no longer have to identify or meet with a client. The project is 100% of their own choosing and design.
- The assessment criteria have been realigned. The following is an approximate conversion:
2014 course | 2027 course | Word counts etc |
---|---|---|
Criteria A (client / rationale / success criteria) | Criteria A (scenario / context / success criteria) | 300 words |
Criteria B (record of tasks) | Criteria B (planning) | 150 words plus planning diagrams |
Criteria B (design and testing) | Criteria C (system overview) | 150 words plus design diagrams |
Criteria C (Development) | Criteria D (Development) | 1000 words |
Criteria D (Video of Functionality) | Criteria D (Development includes a video) | 5 minute video |
Criteria E (Evaluation / recommendations) | Criteria E (Evaluation / recommendations) | 400 words |
Commentary:
-
The deletion of the client is a positive change. Clients were either superficial, or when students did genuinely seek a client, they mostly asked for GUI front-ends to databases. In this way client goals and objectives were incompatible with the skills students needed to be able to demonstrate in the old criteria C. Removing the client means a student can select a project that (a) interests them and (b) allows them to best showcase their skill.
-
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.
Choice of language for the IA?
Same as the current IA, this remains student choice and is not limited to Python or Java. Students will document their choice of language and other computing context in Criteria A.
What support is there for the IA regarding guidance and exemplars?
The IB has published new teacher support documentation and new sample internal assessments as part of the resource package for the new syllabus. Check https://resources.ibo.org/dp to access them.
To help teachers and students further with the IA, the Hodder book team have prepared our own extensive IA support chapter for the new course. Our chapter includes a summary of some of our student’s past projects that scored strongly in moderation, to help inspire students regarding the variety of project ideas that are feasible. Additionally, for each of the five new criteria, we have also prepared:
- The official IB assessment criteria text
- Summary of key information from the IB teacher support materials
- Top tips and common mistakes relevant to each assessment criteria, learnt from many years of student tears and joy.
- Our own samples to supplement the IB samples. These have been collated from past student projects (or created bespoke for the book) and modified to suit the new criteria.
- A detailed checklist for each of the assessment criteria.
Why is the IA worth more to SL than HL?
It was the same under the old course due. Since HL paper 1 and 2 are “larger” those papers merit being worth more, proportionally, than the SL equivalents. This is also compounded by the fact that the IA remains assessed to SL standards (ie: one set of assessment criteria for both levels, not marked to a separate standard for HL)
Planning / sequencing lesson content
How should I sequence my lesson topics?
Everyone will have their own preferences and styles when it comes to this. This is my proposed timeline at the moment that I am leaning toward for my first cohort in the new syllabus. I am not suggesting or recommending this timeline, simply offering it as _a_ timeline. I’ll outline some of the rationale after the chart:
Time period | Lesson focus |
---|---|
Late August September Early October | B2: Programming |
Mid term break | |
November December | B1: Computational thinking B3: Object oriented programming |
Winter break | |
January February March | B4: Abstract data types A3: Databases |
April break | |
May June | Year 12 examinations IA lessons Submit IA draft (Criteria A, B, C) |
Summer break | Submit IA draft (Criteria D, E) |
Late August September Early October | A1: Computer fundamentals A4: Machine learning |
Mid term break | |
November December | A4: Machine learning (continued) A2: Networks |
Winter break | |
January February March | Mock examinations Case study Submit IA final Exam revision |
April break | |
May June | External examinations |
Rationale:
- Focus on programming early so the IA can be started early.
- I’ll do B2 first to focus on the mechanics of programming, then B1 to spend a little time on the thinking skills afterwards.
- Previous experience from students is that Year 13 is too busy with other IAs, and given the enormous time requirements of the CS IA, they prefer the idea of bringing it forward to Year 12 when their other IAs are quieter (though our EE also runs at this time).
- Having deliverables for the IA in Year 12 also has the added benefit of meaning the drafts can be a consideration in their UCAS predicted grade. Deferring the entire IA to Year 13 means this can’t occur.
- Submission of the final IA is deliberately left until after A3 and A4 just in case students wish to draw from those units in their IA projects (ie, if they wish to incorporate some machine learning or a database into their solution).
How should I sequence if I must teach HL separately and alongside SL? (eg: 3 lessons SL per week, 1 lesson HL per week)
This will be tricky.
Sequencing lessons will be a lot easier if you are able to mix up which lessons are SL and which are HL according to your own design.
Option 1 - See if your school will allow you flexibility.
In theory, my school timetable has 2.5 hours per week SL and 1 hour per week dedicated HL, but my Diploma Coordinator has said I can shuffle that according to my curriculum needs provided I clearly communicate with the students in advance (fair enough). We can do this as the HL lesson time is when the SL students will have study periods. In fact, I suspect my SL students will be quite keen as my proposed overview will give them a big bank of study periods closer to their key assessment times.
Option 2 - No timetable flexibility allowed.
I think you would have to start the HL time with A4 Machine Learning as it is the only non-programming unit that is majority HL (also since you won’t have the Case Study in year 1).
While the HL classes are doing A4, use your SL programming lessons to get through B1, B2 and the first half of B3. Once SLhave reached that point, you can switch your HL time to programming to work through B3 and B4.
The other A units, A1, A2 and A3 can likely be taught simultaneously in this scenario provided you are able to time the start of the units right.
It will be complex though.
Resources
What other resources are there for the new course?
Two excellent books to choose from!
Computer Science for the IB Diploma Paul Baumgarten, Ioana Ganea, Carl Turland Published by Hachette Learning (formerly Hodder Education) ISBN: 978-1036009007 https://www.hachettelearning.com/computing-and-it/computer-science-for-the-ib-diploma | Computer Science course companion Bill MacKenty, Lindsey Stephenson, James Abela Published by Oxford University Press ISBN: 978-1382063920 https://global.oup.com/education/product/oxford-resources-for-ib-dp-computer-science-course-book-9781382063920/?region=international |
I fully expect a lot of teachers will update their own personal websites and youtube channels as well in the months ahead! I’ll try and update this with links as I discover them (feel free to share some with me).