PrepSeven | IB Content Guide authored by Shankar Mutneja (Founder of Prepseven)
IB Computer Science
What Is IB Computer Science?
IB Computer Science is a course about how computational thinking shapes the modern world, and how to think like someone who builds the systems that underpin it. It sits in Group 4 of the Diploma Programme alongside the natural sciences and is available at both Standard Level and Higher Level. It is one of the few IB subjects where the Internal Assessment requires you to design, build, and test a functioning software product entirely on your own.
The course covers a wide range of topics: system fundamentals, computer organisation, networks, computational thinking and problem-solving, abstract data structures, resource management, control systems, and the social and ethical implications of computing. It is not a coding course in the narrow sense. It is a course about understanding computation deeply enough to solve problems with it, reason about it critically, and evaluate its impact on society with genuine intellectual rigour.
What distinguishes IB Computer Science from most pre-university computing courses is that it explicitly requires students to move between theoretical understanding, practical programming skill, and sociotechnical analysis. A student who can code fluently but cannot explain how a binary search tree achieves its efficiency properties, or who can explain data structures but cannot discuss the ethical implications of algorithmic decision-making in hiring processes, has not met the full standard the course demands.
IB Computer Science is not an easy Group 4 option for students who want to avoid the laboratory-intensive sciences. The theoretical content, particularly at HL with object-oriented programming at depth, abstract data structures, and resource management, is genuinely demanding. Students who choose it because they think it involves less memorisation than Biology or Chemistry often discover that it requires a different kind of rigour, not less of it.
SL vs HL: What the Difference Actually Means
The gap between Computer Science SL and HL is substantial in terms of both content depth and assessment complexity. HL students cover several additional topics and are expected to demonstrate a significantly higher level of programming and algorithmic thinking than SL students.
Feature | SL | HL |
Teaching hours | 150 hours | 240 hours |
Paper 1 | Short answer and structured questions on core topics | Same structure with additional HL-only questions |
Paper 2 | Object-oriented programming questions in pseudocode | Same, with more complex OOP scenarios and HL extensions |
HL extension topics | N/A | Abstract data structures (stacks, queues, linked lists, binary trees), resource management, object-oriented programming in depth |
Option topic | One from: Databases, Modelling and Simulation, Web Science, Object-oriented programming | Same options, assessed at greater depth |
Internal Assessment | Software product, 30 hours, solution documentation | Software product, 30 hours, same criteria but expected greater complexity |
University signal | Useful context for computing-related degrees | Meaningful preparation for computer science, software engineering, and information systems degrees |
The HL extension content, particularly the abstract data structures topic, represents some of the most conceptually demanding material in the course. Students who have not studied data structures before will encounter stacks, queues, linked lists, and binary trees for the first time in the IB. These are not topics that respond to surface-level revision. Understanding why a linked list behaves differently from an array, what the traversal algorithms for a binary tree actually do step by step, and how a stack implements recursion, requires the kind of patient, step-by-step conceptual engagement that cannot be rushed in the final weeks of Year 2.
If you are considering studying computer science, software engineering, information systems, or a related discipline at university, CS HL is worth taking seriously. The object-oriented programming depth at HL, combined with the abstract data structures content, gives you a genuine conceptual foundation that students without this background often have to build from scratch in their first university year. Many selective computing programmes at universities in the UK, Europe, and North America view CS HL as meaningful preparation.
What the Syllabus Covers
The IB Computer Science syllabus is organised into core topics studied by all students, HL extension topics studied only by HL students, and an option topic studied in depth by all students.
Topic Area | What It Covers | Assessment Relevance |
Topic 1: System Fundamentals | Systems design, system lifecycle, planning and system installation, user focus, system backup, software deployment | Paper 1 structured questions. Understanding system design principles is foundational for the IA. |
Topic 2: Computer Organisation | Computer architecture, memory, secondary storage, operating systems, application software, binary representation | Paper 1 short answer and structured questions. Binary and data representation appear consistently. |
Topic 3: Networks | Network fundamentals, data transmission, wireless networking, social and ethical issues of networks | Paper 1. Network architecture and protocol questions appear regularly at both SL and HL. |
Topic 4: Computational Thinking, Problem-Solving, and Programming | Thinking procedurally, concurrently and abstractly; algorithms; pseudocode and flowcharts; searching and sorting | Paper 1 and Paper 2. This is the most heavily examined core topic and the foundation for HL extensions. |
Topic 5 (HL): Abstract Data Structures | Stacks, queues, linked lists, binary trees, tree traversal algorithms | Paper 1 and Paper 2 at HL. Consistently examined and consistently underperformed by students who revise it late. |
Topic 6 (HL): Resource Management | System resources, role of the operating system in resource management, memory management | Paper 1 at HL. Often combined with Topic 2 questions on operating systems and memory. |
Topic 7 (HL): Control | Control systems, embedded systems, autonomous agents, decision-making with sensors | Paper 1 at HL. Often examined through real-world scenario questions about automated systems. |
Option Topics (all students) | Choice of: Databases, Modelling and Simulation, Web Science, or Object-oriented programming | Paper 2 Section B. Fully reviable in advance. Choose your option and prepare it thoroughly. |
Topic 4, Computational Thinking, Problem-Solving, and Programming, is the most heavily examined topic in the entire course and it is the foundation upon which most of the HL extensions are built. Students who have a shaky grasp of algorithms, pseudocode, searching and sorting, and the concept of abstraction will find both Paper 1 and Paper 2 significantly harder than those who have made Topic 4 instinctive. This is the topic that repays the most consistent practice throughout both years.
Pseudocode: The Language of IB Computer Science Exams
One of the most distinctive features of IB Computer Science is that exam questions requiring programming solutions are answered in IB pseudocode rather than in any specific real-world programming language. This pseudocode has a specific, defined syntax that the IB publishes in its approved notation document. Students who do not learn this notation thoroughly before their exams consistently lose marks on questions they could otherwise answer correctly.
The IB pseudocode covers variables and assignment, input and output, conditional statements, loops, arrays, methods and procedures, and object-oriented constructs including classes, constructors, and inheritance. It is not identical to any real programming language, though it shares elements with Java and Python. A student who writes syntactically correct Python to answer a pseudocode question is not earning full marks if the IB notation requires different syntax for the same construct.
Construct | IB Pseudocode Syntax | Common Student Error |
Variable assignment | X = 5 | Writing X := 5 or int X = 5 from other language conventions |
Output | output X | Writing print(X) or System.out.println(X) |
If statement | if X > 0 then / … / else / … / end if | Forgetting end if or using Python-style colon syntax |
Loop (count controlled) | loop X times / … / end loop | Using for i in range(X) or for(int i=0; i<X; i++) |
Loop (condition controlled) | loop while CONDITION / … / end loop | Using while(CONDITION){ } or mixing up loop styles |
Array access | ARRAY[0] for first element (0-indexed) | Using 1-indexing or inconsistent indexing across an answer |
Method call | OBJECT.METHOD(parameters) | Missing the object prefix or using incorrect dot notation |
Download the IB Computer Science pseudocode reference document from your teacher or the IB website and keep it next to you every time you practise programming questions. Do not rely on your memory of the syntax. Use the reference consistently until the notation becomes natural. By the time of the exam, you should be able to write IB pseudocode without consulting the reference because you have used it so many times that it feels automatic.
Assessment Breakdown: How You Are Graded
Paper 1: Theory and Structured Questions
Paper 1 is one hour thirty minutes at SL and two hours ten minutes at HL. It covers all the core topics and, at HL, the extension topics as well. Questions range from short definitions worth one or two marks to structured scenario-based questions worth up to eight or ten marks. At HL, there is a section specifically for the HL extension content.
Paper 1 rewards breadth of knowledge and the ability to apply concepts to unfamiliar scenarios. A typical Paper 1 question might describe a new computing system and ask you to explain how the operating system manages memory in that context, or describe a network topology and ask you to evaluate its suitability for a specific use case, or present a business scenario and ask you to recommend and justify a system design. The scenario framing means that simply recalling definitions is insufficient. You need to understand concepts well enough to apply them to situations you have not seen before.
The social and ethical implications of computing appear in Paper 1 regularly and are often underrevised. Questions about privacy, digital divide, intellectual property, artificial intelligence ethics, and the environmental impact of computing infrastructure are not peripheral to the course. They are assessed alongside the technical content and they reward students who have genuinely engaged with the complexity of these issues rather than those who produce superficial answers about technology being good or bad.
Paper 2: Object-Oriented Programming and Option Topic
Paper 2 is one hour at SL and one hour twenty minutes at HL. Section A covers object-oriented programming using IB pseudocode. Section B covers the option topic your school has chosen.
The OOP section of Paper 2 is where students who have practised writing pseudocode consistently throughout the course have a clear advantage. Questions typically present a programming scenario and ask you to write methods, trace through code, identify errors, or extend a class hierarchy. These tasks require you to think algorithmically and write precisely in IB notation under time pressure. Students who have only read about OOP concepts without regularly writing pseudocode solutions find this section significantly harder than those who have practised it actively.
Class diagrams are a consistent feature of Paper 2 OOP questions. You need to be able to read a class diagram and write pseudocode that implements or extends it, and to draw class diagrams that represent a described system. Practise both directions: reading a diagram and translating it to code, and reading a description and constructing the appropriate diagram. This is a skill that requires practice, not just understanding.
The option topic section of Paper 2 is the most directly reviable part of the course. Because you know which option your school has chosen, you can prepare it thoroughly and systematically. Students who have left the option topic to the end of their revision often find that they have not given themselves enough time to develop the depth of understanding that the questions demand. Treat the option as a fixed proportion of your Paper 2 grade and prepare it with the same seriousness as the core content.
Internal Assessment: The Software Product
The IA is a software product you design, develop, and document independently. It is worth 30% of your final grade and requires approximately 30 hours of work. You submit a product, a video demonstrating the product in use, and a written solution document that covers planning, design, development, and evaluation.
The IA is assessed on five criteria: Planning, Solution Overview, Development, Functionality and Extensibility of the Product, and Evaluation. The Development criterion is the most heavily weighted and the most demanding. It requires you to explain the techniques used in your solution, justify your design decisions, and demonstrate that you understand the code you have written. A product that works but whose Development section consists of code dumps with minimal explanation will not score well on this criterion.
The choice of client and problem is one of the most consequential decisions in the IA process. Your software product must be built for a real client with a genuine problem, not for yourself and not for a hypothetical scenario. The client could be a family member, a teacher, a club organiser, a local business, or anyone with a real need that software could address. The problem needs to be complex enough to require a genuine software solution but scoped appropriately for 30 hours of development. A product that is too simple will not provide enough material for the Development section. A product that is too ambitious will not be completed and will fail the Functionality criterion.
The single most important thing to understand about the IB CS IA: the written solution document matters as much as the product itself. A fully functional product accompanied by a weak solution document will score significantly lower than a product with one or two bugs accompanied by a thoughtful, clearly written solution document that explains the development process, justifies design decisions, and evaluates the product honestly against the client’s original requirements. Write as you build, not after.
Component | SL Weight | HL Weight | Assessed By |
Paper 1 (Theory and structured questions) | 40% | 40% | External (IB) |
Paper 2 (OOP and option topic) | 30% | 30% | External (IB) |
Internal Assessment (Software product) | 30% | 30% | Internal + Moderated |
Object-Oriented Programming in IB Computer Science: What You Actually Need to Know
Object-oriented programming is the most consistently examined programming paradigm in IB Computer Science. It appears in Paper 2 Section A at both SL and HL, and at HL it is extended significantly with more complex class hierarchies, inheritance, polymorphism, and method overriding. Understanding OOP in IB CS means more than being able to write a class. It means understanding why the OOP paradigm exists, what problems it solves, and how its core principles translate into the specific pseudocode constructs the IB uses.
The four core OOP concepts that the IB tests most consistently are encapsulation, inheritance, polymorphism, and abstraction. Students can often define these terms but cannot demonstrate them in pseudocode or explain what they achieve in a specific programming scenario. The exam tests both. A question might ask you to write a method that overrides a parent class method and then explain why inheritance was the appropriate design choice for this scenario. Both parts require genuine understanding.
OOP Concept | What It Means in Practice | How It Is Tested |
Encapsulation | Bundling data and the methods that operate on it within a class, and restricting direct access to internal data through access modifiers | Questions asking why data should be private and accessed through getter and setter methods, and what problems unrestricted access would cause |
Inheritance | A subclass inheriting the attributes and methods of a parent class, extending or specialising its behaviour without duplicating code | Writing subclass pseudocode that extends a given parent class, drawing class hierarchies, explaining code reuse benefits |
Polymorphism | The ability of objects of different classes to respond to the same method call in ways appropriate to their own type | Questions about method overriding, tracing through code where a method is called on objects of different subclasses |
Abstraction | Hiding implementation details and exposing only what is necessary for interaction, simplifying complexity for the user of a class | Questions about interface design, why implementation details should be hidden, and how abstraction makes code easier to maintain and extend |
A consistently useful revision practice for OOP: take a real-world scenario, such as a library management system, a school timetable, or a hospital patient record system, and design the class hierarchy for it from scratch. Identify the classes, their attributes and methods, the relationships between them, and justify your design decisions. This exercise builds the design thinking that Paper 2 OOP questions demand and also prepares you for the IA development process.
Abstract Data Structures at HL: The Topic That Decides Grade Boundaries
Topic 5, Abstract Data Structures, is the HL-only topic that most consistently determines whether a student scores 5 or 7 in IB Computer Science. It covers stacks, queues, linked lists, and binary trees, along with the algorithms that operate on them. It appears in both Paper 1 and Paper 2 at HL and it is the topic that students who start revising late almost always find most difficult.
The reason this topic is challenging is not that the concepts are inherently complex. It is that understanding data structures properly requires you to think about memory, about the sequence of operations, and about why one structure is more appropriate than another for a given problem. A student who has memorised the definition of a linked list but cannot trace through an insertion algorithm step by step, or who cannot explain why you would use a stack rather than a queue for a specific application, has surface knowledge that will not hold up under exam questioning.
For each data structure, you need to understand: what it is and how it works conceptually, the pseudocode for its core operations such as push and pop for a stack, enqueue and dequeue for a queue, and insertion and traversal for a binary tree, the real-world applications where it is the appropriate choice, and the advantages and limitations compared to other structures. This knowledge needs to be deep enough that you can apply it to novel scenarios in the exam, not just to the examples you studied in class.
Binary tree traversal is one of the most consistently examined HL topics in Paper 2 and one of the most commonly confused. Pre-order, in-order, and post-order traversals each visit nodes in a different sequence and each has specific applications. Pre-order is used for copying a tree. In-order on a binary search tree produces a sorted output. Post-order is used for deleting a tree or evaluating expression trees. Know not just the traversal sequences but what each one achieves and when you would choose it.
What Actually Gets Students to a 7
They practise writing pseudocode, not just reading it
Reading pseudocode solutions and understanding them is a fundamentally different skill from writing pseudocode solutions under exam pressure. Students who have only read model answers in revision often discover in Paper 2 that they cannot reproduce the logic they understood perfectly well when they were looking at it. The preparation that builds genuine pseudocode fluency is writing solutions to programming problems from scratch, without notes or model answers, and then checking your solution. Do this regularly throughout both years, not just in the final weeks before the exam.
They engage with the social and ethical implications seriously
Paper 1 regularly includes questions on the social, ethical, and environmental implications of computing. Students who treat these as easy marks for common sense observations often discover that the questions require nuanced, specific reasoning about real issues: the concentration of data in the hands of a small number of corporations, the environmental cost of training large AI models, the digital divide and its relationship to economic inequality, the ethical complexities of facial recognition in public spaces. Engaging with these issues genuinely throughout the course, reading about them in the context of real current events, produces answers that earn marks. Generic statements about technology being double-edged do not.
They choose their IA client and problem with strategic care
The IA problem needs to be genuine, scoped appropriately, and rich enough in its requirements that you can develop a product with meaningful complexity. A product that sends automated birthday reminders is too simple. A product that manages inventory, generates reports, handles multiple user roles, and stores data persistently is appropriately complex. The client needs to be someone you can actually consult: who can provide specific requirements, who can evaluate the product against those requirements, and whose feedback you can document in the solution. Students who choose a client who is not genuinely engaged with the problem often struggle to produce a convincing Planning section.
They treat the solution document as the primary deliverable
Many students invest most of their IA time in building the software product and relatively little in writing the solution document. This is a strategic error. The Development criterion, which requires you to explain the techniques used in your product with reference to specific code and justify your design decisions, is worth more marks than the product’s functionality alone. A student who builds an impressive product but documents it poorly will score significantly below their potential. Write clear, specific explanations of every significant technique you use as you develop it, not retrospectively after the product is complete.
They understand algorithms, not just code
IB Computer Science questions frequently ask you to describe, trace, or evaluate algorithms rather than simply reproduce code. A question might give you an unseen algorithm in pseudocode and ask you to trace its execution on a specific input, identify its time complexity, or suggest how it could be modified to handle an additional case. Students who understand what an algorithm does at the conceptual level, who can follow the logic step by step and predict what it will produce, perform far better on these questions than students who have only practised writing algorithms without thinking about how they work.
Common Mistakes That Cost Marks
The Mistake | What to Do Instead |
Writing pseudocode in a real language syntax rather than IB notation | Learn the IB pseudocode reference thoroughly. Use it in every practice session until IB notation is automatic. |
Revising abstract data structures late in Year 2 | Engage with stacks, queues, linked lists, and binary trees as soon as they are introduced. These topics require time to develop genuine understanding. |
Giving superficial answers on social and ethical implications | Engage with real computing ethics issues throughout the course. Specific, reasoned arguments earn marks. Generic statements about technology do not. |
Choosing an IA problem that is too simple or too complex | Discuss scope with your teacher before committing. The problem needs to justify a genuine software solution without being beyond 30 hours of development. |
Building the IA product without writing the solution document as you go | Write explanations of your techniques and design decisions as you develop. Retrospective documentation is always less detailed and less accurate. |
Confusing pre-order, in-order, and post-order tree traversal | Know not just the sequences but what each produces and when each is appropriate. Practise tracing all three on the same tree until they are instinctive. |
Not practising the option topic until the last minute | The option is a fixed portion of Paper 2 and is fully reviable. Treat it as a priority, not an afterthought. |
A Realistic Year-by-Year Approach
Year 1 (Grade 11): Build Foundations and Start the IA Early
- Learn the IB pseudocode notation from the very beginning of Year 1 and use it in every programming exercise. Do not write code in Python or Java and then translate. Write in IB pseudocode from the start.
- Engage seriously with Topic 4, Computational Thinking and Programming, as the foundation for everything else. Algorithms, searching, sorting, and abstraction are topics you will return to throughout both years.
- For HL students: begin engaging with abstract data structures as soon as they are introduced. Do not let them accumulate as a debt to be repaid in Year 2. Work through stacks and queues thoroughly before moving to linked lists and trees.
- Begin identifying your IA client and problem by the end of Term 2 in Year 1. The earlier you know what you are building, the more design thinking you can do before the formal development period begins.
- Build the habit of reading about computing ethics and current technology issues regularly. The Financial Times technology section, Wired, and MIT Technology Review all cover the kinds of issues that appear in Paper 1 social and ethical questions.
Year 2 (Grade 12): Deepen Programming Skills and Complete the IA
- Complete at least four full timed practice sessions covering both Paper 1 and Paper 2 before your mock exams. Mark them rigorously and build an error log of the specific types of questions you consistently lose marks on.
- Write at least ten pseudocode solutions to OOP and data structure problems under timed conditions before the exam. Reading model answers is not a substitute for writing your own solutions.
- Complete the IA product and solution document and submit a full draft to your teacher for feedback before the end of Term 1. The revision cycle matters significantly for the Development and Evaluation criteria.
- In the final revision period, prioritise the topics where your practice paper performance is weakest. For most HL students, that means abstract data structures and the HL extension topics. For most SL students, it means OOP and algorithmic tracing.
How PrepSeven Helps You Score Higher in IB Computer Science
IB Computer Science requires two kinds of expertise that are difficult to develop in isolation: deep theoretical understanding of computing concepts, and practical pseudocode fluency under exam pressure. Our Computer Science tutors are experienced IB teachers and examiners who understand both dimensions and know exactly where students lose marks in each component.
Here is what working with a PrepSeven Computer Science tutor typically looks like:
- Paper 1 sessions where your tutor works through structured questions with you, focusing on how to apply theoretical knowledge to unfamiliar scenarios and how to construct specific, reasoned answers to social and ethical implications questions.
- Paper 2 sessions where you write pseudocode solutions under timed conditions and your tutor reviews them for notation accuracy, logical correctness, and the quality of your OOP design thinking.
- Abstract data structures sessions for HL students that build from first principles, working through each structure conceptually before practising the pseudocode operations and exam-style tracing questions.
- IA mentorship covering client identification, problem scoping, solution design, and documentation strategy, with feedback on draft solution documents against the five IA criteria.
Book your free demo lesson at prepseven.com and bring a past Paper 2 OOP question or a data structure problem you have been finding difficult. Your tutor will work through it with you and show you exactly where the pseudocode needs to be tighter and where the conceptual understanding needs to go deeper.
Frequently Asked Questions
Do I need prior programming experience to take IB Computer Science?
No prior programming experience is required to start IB Computer Science, and many students begin the course with no coding background at all. The course introduces programming concepts systematically through IB pseudocode rather than assuming familiarity with a specific language. That said, students who have some prior exposure to programming logic, even informal experience with block-based coding or basic Python, often find the early stages of the course more accessible. The most important prior attribute is not coding experience but logical thinking and willingness to work through problems methodically.
Which programming language should I use for my IA?
The IB does not prescribe a specific language for the IA. You can build your product in any language that is appropriate for the type of software you are developing. Java, Python, and JavaScript are the most commonly used. The choice should be driven by what is most suitable for your product type and client needs, and by what you are most comfortable working in. Your teacher will also be a factor: they need to be able to evaluate your code, and a language they are familiar with makes that process easier. Whatever language you choose, the solution document must explain your development process clearly enough that the moderator can understand your design decisions and techniques without being an expert in your specific language.
What is the word count for the IB CS IA solution document?
The IB specifies a maximum of 2,000 words for the written solution document, not including appendices, code listings, or the video demonstration. This word limit is strict, and students who exceed it risk having marks deducted. In practice, 2,000 words requires very focused, precise writing. Every sentence in the solution document should be earning its place by explaining a design decision, justifying a technique, or evaluating the product against its requirements. Students who write discursively or repeat themselves typically find themselves significantly over the word limit and are forced to cut content that they needed.
Can I use a real programming language on the Paper 2 exam?
No. Paper 2 requires all programming responses to be written in IB pseudocode, not in any real programming language. Using Python, Java, or any other language syntax in your Paper 2 response will cost you marks, regardless of whether your logic is correct. This is one of the most common sources of preventable mark loss in IB Computer Science. Learn the IB pseudocode notation early, practise it consistently, and use it exclusively in exam-style practice throughout both years.
Is IB CS HL accepted as a science by universities?
IB Computer Science HL sits in Group 4, the Sciences group of the IB Diploma. For most universities and most degree programmes, it satisfies the Group 4 science requirement. However, for degree programmes in biology, chemistry, physics, or medicine, universities typically expect a traditional laboratory science, and CS HL may not be accepted as a substitute. For computing, software engineering, mathematics, engineering, and most social sciences, CS HL is fully accepted as a Group 4 subject. Always check the specific requirements for your target degree programmes, as policies vary between institutions.
PrepSeven | Certified IB Examiners | prepseven.com | support@prepseven.com | +91 9518292944
This guide is produced by PrepSeven for educational purposes. All IB assessment information is based on publicly available IB documentation and is subject to change. Always verify current assessment details with your school’s IB coordinator.


