College Board AP Computer Science Units: Full List

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Published

Last updated

AP Computer Science consists of two courses, each with a distinct focus while sharing some common principles.

  • College Board AP Computer Science Principles (CSP) explores broad concepts, including data analysis, how the Internet works, and the impact of computer science in fields such as cybersecurity and artificial intelligence.

  • College Board AP Computer Science A (CSA), on the other hand, focuses on programming with Java, covering complex techniques used to develop software.

In this article, I’ll break down each course, providing an overview of the topics covered in each unit to help you organise your studies effectively.

College Board AP Computer Science Principles (CSP) Units

1. Creative Development

This topic explores how programs are designed, developed, and refined to meet specific needs. You will learn the importance of collaboration in programming, how to define a program’s purpose, and how to structure code for readability and efficiency. Additionally, you will develop skills in debugging and testing to identify and correct errors, ensuring that programs function as intended. Ethical computing practices, including intellectual property rights and citation, are also covered in responsible computing.

Topics include:

  • The role of collaboration in program development

  • Investigating a problem and defining its purpose

  • Designing effective solutions and structuring code

  • Debugging and testing to identify and correct errors

  • Ethical computing practices, including intellectual property rights and citation

2. Data

This topic explores how computers represent, manipulate, and analyze data. You will learn about binary number systems, data compression techniques, and how programs can extract meaningful insights from data. Understanding how data is structured and processed is essential for making informed decisions and solving problems effectively. Additionally, you will examine the ethical implications of data collection and its impact on society.

Topics include:

  • How computers use binary to store and process data

  • Data compression methods and their effects on storage and transmission

  • Extracting useful information from large datasets

  • Implementing algorithms to process and analyze data

  • Ethical considerations and the societal impact of data collection

3. Algorithms and Programming

This topic introduces you to the fundamental principles of programming and algorithm development. You will learn how to use variables, conditionals, loops, and functions to write efficient code. The course also covers abstraction, procedural programming, and key computational techniques such as iteration, searching, and algorithmic efficiency. These concepts will help you break down complex problems into manageable solutions and write programs that solve real-world challenges.

Topics include:

  • Variables, data abstraction, and expressions

  • Boolean logic, conditionals, and loops

  • Developing and evaluating algorithms

  • Lists, binary search, and procedure calls

  • Using simulations and evaluating algorithm efficiency

4. Computer Systems and Networks

This topic explores the structure and function of computer systems, including how they connect and communicate over networks. You will learn about the internet, fault tolerance in computing systems, and how parallel and distributed computing improves efficiency. Understanding these concepts will help you grasp how modern computing infrastructure operates and supports various applications.

Topics include:

  • The internet and how computing systems work

  • Ensuring system reliability through fault tolerance

  • Parallel and distributed computing for improved performance

5. Impact of Computing

This topic examines the influence of computing on society, from its benefits and challenges to ethical and legal considerations. You will explore issues like the digital divide, computing bias, and the role of crowdsourcing, while also evaluating the ethical responsibilities of technology use. Safe computing practices, including personal data protection and cybersecurity best practices, are also key areas of focus.

Topics include:

  • Beneficial and harmful effects of computing

  • The digital divide and accessibility challenges

  • Computing bias and responsible technology use

  • Crowdsourcing and collaboration in technology

  • Legal and ethical responsibilities in computing

  • Safe computing and data security, including personal data protection and cybersecurity best practices

What is Covered in the College Board AP Computer Science Principles (CSP) Exam?

Section

Question Type/Component

Number of Questions

Exam Weighting

Timing

I

Multiple-choice questions

70

70%

120 minutes End-of-course
AP Exam

Single-select

57

Segle-select with a reading passage about computing innovation

5

Multi-select

8

II

Create Performance Task

30%

Program code, video, and Personalized Project Reference

At least 9 hours in class

Written response questions related to the Create Performance task

2

60 minutes End-of-course AP Exam

Units

Exam Weighting

  1. Creative Development

10-13%

  1. Data

17-22%

  1. Algorithms and Programming

30-35%

  1. Computer Systems and Networks

11-15%

  1. Impact of Computing

21-26%

Revision Resources for College Board AP Computer Science Principles (CSP)

For high-quality revision resources for the College Board AP Computer Science Principles (CSP) exam, explore our revision resources.

College Board AP Computer Science A (CSA) Units

1. Primitive Types

This topic introduces you to fundamental programming concepts in Java, including variables, data types, and expressions. You will learn how to declare and manipulate variables, use arithmetic and compound assignment operators, and understand typecasting. These concepts form the foundation for writing effective Java programs.

Topics include:

  • The purpose of programming and why Java is widely used

  • Declaring and using variables and data types

  • Writing expressions and assignment statements

  • Using compound assignment operators for efficiency

  • Type casting and understanding variable range limits

2. Using Objects

This topic focuses on working with objects in Java, a key aspect of object-oriented programming. You will learn how to create and store objects, call methods, and manipulate data using wrapper classes and built-in Java libraries. These skills will help you understand how to interact with and utilize objects effectively in your programs.

Topics include:

  • Understanding objects as instances of classes

  • Creating and storing objects through instantiation

  • Calling void and non-void methods with and without parameters

  • Working with string objects and methods

  • Using wrapper classes like Integer and Double

  • Performing mathematical operations with the Math class

3. Boolean Expressions and If Statements

This topic introduces Boolean logic and decision-making in Java programs. You will learn how to construct Boolean expressions, control the flow of a program using if, if-else, and else if statements, and compare objects effectively. Understanding these concepts will allow you to write programs that make decisions based on user input and other conditions.

Topics include:

  • Constructing and evaluating Boolean expressions

  • Using if, if-else, and else if statements for decision-making

  • Writing compound Boolean expressions for complex conditions

  • Determining equivalency between different Boolean expressions

  • Comparing objects using Java methods

4. Iteration

This topic covers loops and repetition structures in Java, enabling you to write programs that execute blocks of code multiple times. You will learn to use while and for loops, develop algorithms that manipulate strings, and apply nested iteration for more complex tasks. Additionally, you will analyze code execution and predict how changes impact program behavior.

Topics include:

  • Using while loops to repeat tasks based on conditions

  • Implementing for loops for controlled iteration

  • Developing algorithms using loops and string manipulation

  • Writing and understanding nested iteration for more advanced patterns

  • Analyzing code execution to determine the number of iterations

5. Writing Classes

This topic introduces object-oriented programming by guiding you through the structure and functionality of Java classes. You will learn how to design and implement classes, use constructors to initialize objects, and define methods to manipulate data. Additionally, you will explore the use of static variables and methods to manage shared resources efficiently.

Topics include:

  • Understanding the anatomy of a Java class

  • Writing constructors to initialize objects

  • Documenting code with comments for clarity

  • Implementing accessor and mutator methods

  • Creating methods to define behaviors

  • Utilizing static variables and methods for shared functionality

6. Arrays

This topic focuses on how to create, manipulate, and traverse arrays in Java. You will learn how to initialize arrays, access their elements, and iterate through them using loops. Additionally, you will explore enhanced for loops and develop algorithms that utilize arrays to store and process data efficiently.

Topics include:

  • Creating and accessing elements in arrays

  • Traversing arrays using loops

  • Using enhanced for loops for array traversal

  • Developing algorithms that utilize arrays effectively

7. ArrayLists

This topic introduces ArrayLists, a dynamic data structure that allows flexible storage and manipulation of objects in Java. You will learn how to initialize and modify ArrayLists, explore built-in methods, and traverse them using loops. Additionally, you will develop algorithms that utilize ArrayLists for searching and sorting, while considering ethical issues surrounding data collection.

Topics include:

  • Initializing and using ArrayLists

  • Utilizing ArrayList methods for manipulation

  • Traversing ArrayLists using loops

  • Developing algorithms using ArrayLists

  • Searching and sorting techniques

  • Ethical concerns related to data collection

8. 2D Arrays

This topic expands on arrays by introducing two-dimensional (2D) arrays, which allow data to be organized in a grid-like structure. You will learn how to declare, initialize, and manipulate 2D arrays, as well as traverse them using loops. Additionally, you will develop algorithms that work with 2D arrays and apply test cases to validate results.

Topics include:

  • Declaring and initializing 2D arrays

  • Accessing and modifying elements in a 2D array

  • Traversing 2D arrays using nested loops

  • Developing algorithms for 2D arrays

  • Validating results using test cases

9. Inheritance

This topic explores how object-oriented programming enables code reuse and hierarchy through inheritance. You will learn how to create superclasses and subclasses, override methods, and use the super keyword to reference parent class functionality. Additionally, you will understand polymorphism, how references work in inheritance hierarchies, and the role of the Object superclass.

Topics include:

  • Creating superclasses and subclasses

  • Writing constructors for subclasses

  • Overriding methods in subclasses

  • Using the super keyword

  • Creating references using inheritance hierarchies

  • Understanding polymorphism and dynamic method dispatch

  • The role of the Object superclass in Java

10. Recursion

This topic explores the concept of recursion, where a method calls itself to solve a problem. You will learn how recursive algorithms work, their advantages, and when they are appropriate to use. Additionally, you will examine recursive searching and sorting techniques, understanding their efficiency and execution flow.

Topics include:

  • Understanding recursive methods and their structure

  • Tracing recursive function execution

  • Recursive searching and sorting algorithms

  • Evaluating the efficiency and limitations of recursion

What is Covered in the College Board AP Computer Science A (CSA) Exam?

Section

Question Type/Component

Number of Questions

Exam Weighting

Timing

I

Multiple-choice questions

40

50%

90 minutes

II

Free-response questions

4

90 minutes

Question 1: Methods and Control Structures

12.5%

Question 2: Class

12.5%

Question 3: Array/ArrayList

12.5%

Question 4: 2D Array

12.5%

Units

Exam Weighting

  1. Primitive Types

2.5-5%

  1. Using Objects

5-7.5%

  1. Boolean Expressions and if Statements

15-17.5%

  1. Iteration

17.5-22%

  1. Writing Classes

5.7.5%

  1. Array

10-15%

  1. ArrayList

2.5-7.5%

  1. 2D Array

7.5-10%

  1. Inheritance

5-10%

  1. Recursion

5-7.5%

Improve Your Grades with Save My Exams

At Save My Exams, we’re here to help you achieve the best possible grade in AP Computer Science. Right now, you can access our past papers with mark schemes, giving you the perfect way to practise and refine your exam technique.

And that’s just the beginning - our expert team is working on even more resources to support your revision, including:

  • Clear and concise revision notes that break down complex topics into easy-to-understand explanations

  • Exam-style questions with detailed mark schemes, so you know exactly what examiners are looking for

  • Flashcards for quick-fire revision and easy recall of key facts and definitions

These new resources are coming soon, so stay tuned! In the meantime, get ahead with our AP Computer Science past papers and start building your exam confidence today.

Explore Our AP Computer Science Revision Resources

References

College Board AP Computer Science Principles Course and Exam Description

College Board AP Computer Science A Course and Exam Description

Sign up for articles sent directly to your inbox

Receive news, articles and guides directly from our team of experts.

Share this article

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Author: James Woodhouse

Expertise: Computer Science

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.

The examiner written revision resources that improve your grades 2x.

Join now