AP Computer Science A is an object-oriented programming course taught entirely in Java. The exam focuses on reading, tracing, and writing code — not on compiling or running it. You'll never need to write a complete working program from scratch, but you do need to write methods that would work correctly if plugged into a larger program. Here's what each unit covers and where students most often lose points.
Units 1–3: Java Fundamentals
Unit 1 covers primitive types (int, double, boolean), arithmetic operators (including integer division and modulo — tested frequently), and type casting. Unit 2 covers String methods (substring, indexOf, length, equals — NOT ==), Math class methods (Math.random(), Math.abs(), Math.pow(), Math.sqrt()), and object instantiation. Unit 3 covers boolean expressions and if/else/else-if chains. Know operator precedence, short-circuit evaluation (&&, ||), and De Morgan's Laws: !(A && B) = !A || !B and !(A || B) = !A && !B.
Units 4–5: Iteration and Writing Classes
Unit 4 covers while loops, for loops, and loop tracing. Practice tracing loops with off-by-one errors — these appear heavily in MCQ. Unit 5 covers writing classes: instance variables, constructors, accessor/getter methods, mutator/setter methods, static variables and methods, and the difference between == (reference equality) and .equals() (value equality). The AP exam frequently tests whether you understand when two references point to the same object vs. objects that are equal in value.
Units 6–7: Arrays and ArrayLists
Unit 6 covers one-dimensional arrays: declaration, initialization, traversal (for loop and enhanced for loop), and common algorithms (sum, min/max, count, find). Arrays have fixed size; indices go from 0 to length-1; ArrayIndexOutOfBoundsException is a common error to identify. Unit 7 covers ArrayList: add, remove, get, set, size — and the critical fact that removing elements while iterating forward causes elements to be skipped (iterate backward, or use an explicit index loop with careful index management).
Unit 8: 2D Arrays
2D arrays are arrays of arrays: int[][] grid = new int[rows][cols]. Traverse with nested for loops — outer loop for rows, inner for columns. Column-major vs. row-major traversal (and when each is appropriate) is tested on MCQ. Know how to process diagonal elements (where row == col), and how to pass a 2D array as a method parameter.
Units 9–10: Inheritance and Recursion
Unit 9 covers class hierarchies, the extends keyword, super constructors and super method calls, method overriding, and polymorphism (a superclass reference can hold a subclass object — the method that runs is determined at runtime by the actual object type, not the reference type). Unit 10 covers recursion: base case, recursive case, call stack tracing, and common recursive patterns (factorial, Fibonacci, binary search, merge sort). Trace recursion by hand — the AP exam frequently asks you to determine what a recursive method returns for a specific input.
FRQ Types
The AP CSA exam has 4 FRQs: Methods and Control Structures, Class Writing, Array/ArrayList, and 2D Array. Each FRQ is worth 9 points. Write clean, readable code — College Board graders follow a rubric of specific points earned, and partial credit is available for each part. Even if your complete solution has a bug, parts that demonstrate correct understanding earn credit.
AP CSA Practice Questions · AP CSA Practice Test · All AP Courses
AP and Advanced Placement are trademarks of College Board. AimFive is not affiliated with or endorsed by College Board.