AP CSA

UTeach Computer Science AP CS A

UTeach AP CSA

AP Computer Science A is a rigorous college-level course designed to prepare students for advanced coursework and potential career pathways in computer science.

Course Overview

In this rigorous, project-based curriculum, students deep-dive into programming concepts while collaborating to solve a series of real-world challenges. Each unit introduces unique interplanetary missions where students tackle hands-on problems as they "travel through space."

This curriculum immerses students in Java programming topics (e.g. abstraction, algorithms, data structures, object-oriented programming) and prepares students for advanced college coursework and potential career pathways in computer science. 

The UTeach AP CSA curriculum has been re-endorsed by the College Board in alignment with the 2025–26 course framework. 

"The students are eager to see each unit project. The projects not only pique the students' interests, but give them a reason to master each lesson as it is presented. I'm glad you continued that practice with the CSA materials."

—Wendy G., CSA and CS Principles teacher

Included With Your License

  • Comprehensive teacher materials
  • Complete student-facing curriculum
  • Unlimited teacher support
  • Codio platform access, with student accounts

AP CSA Unit Descriptions

Jump to:

Illustration of an interplanetary mission from Unit 1 of the UTeach AP CSA curriculum


Interplanetary Missions

Throughout the units, students embark on a “journey through space” as they apply their coding skills to solve complex problems, all woven into an engaging series of interplanetary missions. As part of the curriculum’s overarching narrative, students join a top-secret intergalactic research division tasked with exploring exoplanets, identifying habitable worlds, and securing humanity's place in the galaxy. Explore example missions:  

  • Fuel of Dreams Mission: Students research key details about the James Webb Space Telescope and then write a Java program to estimate the fuel efficiency for its journey. This mission requires students to make careful calculations using a simplified mathematical model to determine the energy needed to travel vast distances.
  • Alien Life Detection Mission: Students develop a Java program to analyze data from a simulated space mission and assess the potential for alien life on an exoplanet. The program must evaluate input environmental data (e.g., temperature, atmospheric composition, and water presence) to determine the planet's suitability for alien life. This mission reinforces key Java concepts, including variables, data types, expressions, input/output, and Math class methods. 

Hands-On Labs

Hands-on labs throughout the curriculum provide additional opportunities for students to practice programming and problem-solving skills. Explore sample labs:

  • Boolean Detective Lab: Create a program to analyze clues and determine which suspect is guilty in a case involving a stolen artifact. The clues involve logical conditions about suspects, alibis, and evidence.  
  • Virtual Pet Playdate Lab: Develop a program to create and interact with virtual pets. Students will create a VirtualPet class with instance variables, a constructor, and methods, as well as a tester class to instantiate objects of the VirtualPet class and call the methods.
  • Analyzing Car Pollution Lab: Complete coding tasks to prepare pollution data (NO2 levels) stored in an array to be analyzed to identify which city intersection has the most measured air pollution. 

Unit 1: Using Objects and Methods

Unit 1 introduces fundamental Java programming concepts, including algorithms, programming structures, variables, data types, input/output operations, and type casting. Students learn to write clear, well-documented code, use APIs, and work with class and instance methods, the Math class, and string manipulation. They also explore object-oriented principles, such as object creation, storage, and understanding objects as class instances. 

Unit 2: Selection and Iteration

Unit 2 focuses on algorithmic decision-making and repetition using selection and iteration structures in Java, such as if statements, while loops, and for loops. Students construct and evaluate Boolean expressions, develop efficient compound expressions, and analyze performance trade-offs through informal run-time analysis. These concepts are applied to string manipulation and nested iteration to design and evaluate algorithms. 

Unit 3: Class Creation

Unit 3 emphasizes abstraction and program design, highlighting how design choices affect readability, maintainability, and efficiency. Students learn about Java class structure, including constructors, variables, methods, scope, and access control for encapsulation. They explore passing and returning object references, memory implications, and the use of the this keyword to distinguish instance variables from parameters.  

Unit 4: Data Collection

Unit 4 covers data structures, algorithms, and ethical considerations in computing, emphasizing the societal impact of data collection. Students work with datasets, arrays, ArrayLists objects, and two-dimensional arrays, implementing traversal, searching, and sorting algorithms while analyzing their efficiency. This unit also introduces recursion as a problem-solving tool and culminates with a look at recursive implementations of searching and sorting algorithms to enhance algorithmic thinking. 

Return to Top