IB Computer Science Higher Level

Learn more about the course content for International Baccalaureate Computer Science Higher Level Course

Sara Jenis avatar
Written by Sara Jenis
Updated over a week ago

Course Overview

The IB Computer Science Higher Level course is designed to facilitate students with both the learning and exam-taking processes of the Higher Level (HL) section of the IB program. This course walks students through the programming components and the critical skills needed to complete the IB Learner Profile.

This course uses the Java programming language and is designed for complete beginners with no previous background in computer science.

Higher Level or Standard Level

The IB Diploma Program offers two options for computer science--Higher Level (HL) or Standard Level (SL). The Standard Level course takes one year to complete. The Higher Level course takes two years to complete. The Higher Level course includes everything in the Standard Level course and additional topics, including resource management, control, abstract data structures, and advanced object-oriented programming. CodeHS offers content for the first year of the Higher Level Course.

Check out the IB Computer Science Webinar for more info.

What’s Covered in IB Higher Level

Introduction to Programming in Java with Karel the Dog

In this module, students learn the basics of java commands, control structures, and problem solving by solving puzzles with Karel.

Design Thinking

This module introduces students to the theory and practice of user centered design.

Project: Put it in Writing!

In this project, students develop a training policy that informs employees on matters of network security and details the company policy on preventative measures employees should take.

Digital Information

Students learn about the various ways to represent information digitally including number systems, encoding data, programmatically creating pixel images, comparing data encodings, compressing and encrypting data.


Students explore the structure and design of the internet, and how this design affects the reliability of network communication, the security of data, and personal privacy.

Computer Organization

Students learn about the physical elements of computers and networking, such as motherboards, RAM, routers, and the use of port numbers, ethernet, and wireless devices.

Primitive Types

Students learn about writing the main method and start to call preexisting methods to produce output. Students learn about three built-in data types and learn how to create variables, store values, and interact with those variables using basic operations.

Using Objects

Students learn how to create and use classes and objects. This unit builds on students’ ability to write expressions by introducing them to Math class and String methods to write expressions for generating random numbers and other more complex operations.

Boolean Expressions and if Statements

Students learn the syntax and proper use of conditional statements in Java, as well as how to implement Boolean variables in their programs by writing Boolean expressions with relational and logical operators.


Students learn how to use iteration to improve the reusability and speed of their programs. Students evaluate which iterative structures should be used in a given context, and build programs that require them to choose the iterative structure that works best.

Writing Classes

Students learn how to create and implement complex classes and objects.


Students learn about how to use and manipulate data in the form of arrays. Students explore the limitations of primitive data types in the context of storing data, and develop programs that use arrays to store and search for data.


Students learn about the limitations of arrays, and are introduced to a new data structure - ArrayLists. Students are asked to compare the two data structures and implement programs that utilize each.

2D Array

Students learn how to store data in increasingly complex ways by introducing them to the 2D arrays. Students learn standard algorithms to utilize and search 2D arrays, as well as ways to use them effectively in their programs.


Students learn how to recognize common attributes and behaviors that can be used in a superclass and create hierarchies by writing subclasses to extend a superclass.


Students learn how to write simple recursive methods and determine the purpose or output of a recursive method by tracing.

Exam Practice

Students apply their knowledge to complete IB-related exam practice questions.

IB Course Webinar Recording

This webinar was hosted on May 25th, 2021.

[View the webinar slides here.]

Visit the CodeHS Course Catalog to explore all the courses available. For help choosing on the right computer science course for your students, email us at hello@codehs.com.

Did this answer your question?