AP Computer Science Principles offers a multidisciplinary approach to teaching the underlying principles of computation. The course will introduce students to the creative aspects of programming, abstractions, algorithms, large data sets, the Internet, cybersecurity concerns, and computing impacts. AP Computer Science Principles also gives students the opportunity to use current technologies to create computational artifacts for both self-expression and problem solving. Together, these aspects of the course make up a rigorous and rich curriculum that aims to broaden participation in computer science.

The course introduces students to computer science with fundamental topics that include problem solving, design strategies and methodologies, organization of data (data structures), approaches to processing data (algorithms), analysis of potential solutions, and the ethical and social implications of computing. The course emphasizes object-oriented and imperative problem solving and design using the Java language. These techniques represent proven approaches for developing solutions that can scale up from small, simple problems to large, complex problems.

This course goes beyond the CS-A curriculum through a more formal and more in-depth study of algorithms, data structures, and data abstraction.  For example, binary trees and the use of recursive data structures and dynamically allocated structures are examined.

This is the capstone course for our computer science students.  Students will complete larger projects with greater impact and a high degree of creativity.

The IB computer science course is a rigorous and practical problem-solving discipline. Features and benefits of the curriculum and assessment of are as follows: 


Two course levels are offered; standard level (SL) and higher level (HL).

Computer science candidates are not limited by a defined study level so can opt for this course in the same way as their other subjects.

Computational thinking lies at the heart of the course and is integrated with other topics. This will be supported by practical activities including programming.

Candidates will learn programming skills as a critical element of developing higher-level skills applicable to virtually all fields of study.

Four course options are available; databases, modelling and simulation, web science, object oriented programming

These options will allow a particular subject of interest to be studied as defined by the subject teacher

Algorithmic thinking will only be externally assessed at the level of pseudo-code.

This means the external assessment will focus on the student’s algorithmic thinking, not on their mastery of the syntax of a particular programming language.

Practical programming experience will be an essential element of developing higher-level thinking skills; this may be assessed as a part of the internal assessment. There is no designated language.

This allows teachers to select the programming language(s) which they feel are most appropriate for teaching the practical elements of the course

A new component has been introduced (HL only) that is linked to the annually issued case study, to expand students’ knowledge of a new subject-related topic through investigative study.

This will allow students to investigate in greater depth current issues in computer science that are not included in the syllabus.

The internal assessment has changed from a being based on a Java-related task to a more open problem-solving exercise.

This will expand the choice of programming languages and better support the development of learners who match the IB learner profile

All computer science students will work with other students of group 4 subjects (physics, chemistry, biology and design technology).

Collaborative working will be emphasized through combined activity with like-minded students.