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

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?

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:

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).


Copyright © Paul Baumgarten.