AP® Computer Science A Course Outline
Every unit, topic, and planned lesson, organized around the College Board Course and Exam Description. Each planned lesson covers one learning objective, with Java practice, solutions, and a full answer key.
1Unit 1: Using Objects and MethodsVariables, expressions, the Math and String classes, and calling methods on objects.15 topics · 28 lessons · ~32–34 class periods · 15–25% of exam
Student practice samples for this unit
1.1Introduction to Algorithms, Programming, and Compilers
- 1.1.AAlgorithms in Everyday Life
Describe step-by-step processes in words and diagrams.
- 1.1.BCompiling and Running Java
How source code becomes a running program.
- 1.1.CTypes of Programming Errors
Syntax, logic, run-time and exception errors.
1.2Variables and Data Types
- 1.2.AChoosing a Data Type
int, double, boolean, or a reference type?
- 1.2.BDeclaring Variables
Storing numbers and Boolean values.
1.3Expressions and Output
- 1.3.APrinting Output
print vs. println and predicting what displays.
- 1.3.BString Literals and Escape Sequences
Quotes, \n, \" and \\ in output.
- 1.3.CArithmetic Expressions
Operator precedence, integer division and %.
1.4Assignment Statements and Input
- 1.4.AAssignment Statements
Evaluating the right side and storing the result.
- 1.4.BReading Input
Getting values from the user with Scanner.
1.5Casting and Range of Variables
- 1.5.ACasting Between int and double
Widening, narrowing and rounding with casts.
- 1.5.BInteger Overflow
What happens past Integer.MAX_VALUE.
- 1.5.CLimits of Floating-Point Accuracy
Why 0.1 + 0.2 isn't exactly 0.3.
1.6Compound Assignment Operators
- 1.6.ACompound Assignment Operators
+=, -=, *=, /=, %=, ++ and --.
1.7Application Program Interface (API) and Libraries
- 1.7.AReading an API
Finding a class's attributes and behaviors.
1.8Documentation with Comments
- 1.8.ACommenting Code
Single-line, block and Javadoc comments; preconditions and postconditions.
1.9Method Signatures
- 1.9.AReading Method Signatures
Name, parameters, return type and overloading.
- 1.9.BHow Method Calls Work
Arguments, parameters and return values.
1.10Calling Class Methods
- 1.10.ACalling Static Methods
Using ClassName.method() and its result.
1.11Math Class
- 1.11.AUsing the Math Class
abs, pow, sqrt and random numbers in a range.
1.12Objects: Instances of Classes
- 1.12.AClasses and Objects
A class is the blueprint; an object is an instance.
- 1.12.BReference Variables
Variables that store a reference, not the object.
1.13Object Creation and Storage (Instantiation)
- 1.13.AMatching Constructors
Picking the constructor from its signature.
- 1.13.BDeclaring Object Variables
Choosing the right type to hold a reference.
- 1.13.CCreating Objects with new
Calling a constructor; null references.
1.14Calling Instance Methods
- 1.14.ACalling Instance Methods
Dot notation, return values and NullPointerException.
1.15String Manipulation
- 1.15.ACreating and Combining Strings
Concatenation and immutability.
- 1.15.BString Methods
length, substring, indexOf, equals and compareTo.
2Unit 2: Selection and IterationBoolean logic, if statements, loops, string algorithms and run-time counting.12 topics · 14 lessons · ~29–31 class periods · 25–35% of exam
2.1Algorithms with Selection and Repetition
- 2.1.ASelection and Repetition in Everyday LifeEnroll Now
Spotting decisions and repeated steps in real processes.
2.2Boolean Expressions
- 2.2.ARelational OperatorsEnroll Now
==, !=, <, <=, > and >= with primitives.
2.3if Statements
- 2.3.Aif and if-elseEnroll Now
Choosing which code runs.
2.4Nested if Statements
- 2.4.ANested and Multiway SelectionEnroll Now
if-else-if chains and nested decisions.
2.5Compound Boolean Expressions
- 2.5.ACompound Boolean ExpressionsEnroll Now
&&, ||, ! and short-circuit evaluation.
2.6Comparing Boolean Expressions
- 2.6.AEquivalent Boolean ExpressionsEnroll Now
De Morgan's laws and truth tables.
- 2.6.BComparing Object ReferencesEnroll Now
== vs. equals, and aliases.
2.7while Loops
- 2.7.AWhen to Use a LoopEnroll Now
Recognizing tasks that need iteration.
- 2.7.Bwhile LoopsEnroll Now
Loop conditions, off-by-one errors and infinite loops.
2.8for Loops
- 2.8.Afor LoopsEnroll Now
Initialize, test, update, and converting to while.
2.9Implementing Selection and Iteration Algorithms
- 2.9.AClassic Loop AlgorithmsEnroll Now
Sums, averages, min/max, counting and digit processing.
2.10Implementing String Algorithms
- 2.10.AString AlgorithmsEnroll Now
Reversing, counting and finding substrings.
2.11Nested Iteration
- 2.11.ANested LoopsEnroll Now
Loops inside loops and tracing their output.
2.12Informal Run-Time Analysis
- 2.12.ACounting Statement ExecutionsEnroll Now
Comparing how long iterative code takes.
3Unit 3: Class CreationDesigning and writing your own classes: constructors, methods, scope and this.9 topics · 10 lessons · ~20–22 class periods · 10–18% of exam
3.1Abstraction and Program Design
- 3.1.ADesigning with ClassesEnroll Now
Attributes, behaviors and class diagrams.
3.2Impact of Program Design
- 3.2.ASocial and Ethical Impacts of ComputingEnroll Now
Benefits, harms, privacy and intellectual property.
3.3Anatomy of a Class
- 3.3.AAccess and VisibilityEnroll Now
public vs. private and encapsulation.
3.4Constructors
- 3.4.AWriting ConstructorsEnroll Now
Initializing instance variables.
3.5Methods: How to Write Them
- 3.5.AWriting MethodsEnroll Now
Parameters, return values, accessors and mutators.
3.6Methods: Passing and Returning References of an Object
- 3.6.APassing and Returning ObjectsEnroll Now
How references behave as parameters and return values.
3.7Class Variables and Methods
- 3.7.AStatic MethodsEnroll Now
Behaviors that belong to the class itself.
- 3.7.BStatic VariablesEnroll Now
Data shared by every instance.
3.8Scope and Access
- 3.8.AVariable ScopeEnroll Now
Local, parameter and instance variables.
3.9this Keyword
- 3.9.AUsing thisEnroll Now
Referring to the current object.
4Unit 4: Data CollectionsArrays, ArrayLists, 2D arrays, text files, searching, sorting and recursion.17 topics · 21 lessons · ~50–52 class periods · 30–40% of exam
4.1Ethical and Social Issues Around Data Collection
- 4.1.APrivacy and Personal DataEnroll Now
Risks of collecting and storing personal information.
- 4.1.BData Quality and BiasEnroll Now
Why incomplete or biased data matters.
- 4.1.CChoosing a Data SetEnroll Now
Matching data to the question you're asking.
4.2Introduction to Using Data Sets
- 4.2.APatterns in Data SetsEnroll Now
Describing data algorithms in words and diagrams.
4.3Array Creation and Access
- 4.3.ACreating and Using ArraysEnroll Now
Declaring, initializing, indexing and bounds.
4.4Array Traversals
- 4.4.ATraversing ArraysEnroll Now
Indexed and enhanced for loops.
4.5Implementing Array Algorithms
- 4.5.AArray AlgorithmsEnroll Now
Min/max, sums, shifting, reversing and duplicates.
4.6Using Text Files
- 4.6.AReading Data from Text FilesEnroll Now
File, Scanner and handling exceptions.
4.7Wrapper Classes
- 4.7.AInteger and Double Wrapper ClassesEnroll Now
Autoboxing, unboxing and parsing.
4.8ArrayList Methods
- 4.8.AArrayList MethodsEnroll Now
add, get, set, remove and size.
4.9ArrayList Traversals
- 4.9.ATraversing ArrayListsEnroll Now
Loops, and removing items safely.
4.10Implementing ArrayList Algorithms
- 4.10.AArrayList AlgorithmsEnroll Now
Filtering, counting, inserting and removing.
4.112D Array Creation and Access
- 4.11.ACreating and Using 2D ArraysEnroll Now
Rows, columns and indexing.
4.122D Array Traversals
- 4.12.ATraversing 2D ArraysEnroll Now
Row-major and column-major order.
4.13Implementing 2D Array Algorithms
- 4.13.A2D Array AlgorithmsEnroll Now
Row and column sums, searching and neighbors.
4.14Searching Algorithms
- 4.14.ALinear SearchEnroll Now
Searching arrays and ArrayLists step by step.
4.15Sorting Algorithms
- 4.15.ASelection and Insertion SortEnroll Now
Tracing each pass of the sort.
4.16Recursion
- 4.16.ARecursive MethodsEnroll Now
Base cases, recursive calls and the call stack.
4.17Recursive Searching and Sorting
- 4.17.ARecursion with Strings and CollectionsEnroll Now
Tracing recursive algorithms on data.
- 4.17.BBinary SearchEnroll Now
Halving the search range each step.
- 4.17.CMerge SortEnroll Now
Splitting, sorting and merging.
Independently developed by Code Scholars Tutoring. Lesson codes reference College Board’s AP® Computer Science A Course and Exam Description. AP® is a trademark registered by the College Board, which is not affiliated with, and does not endorse, this material.
