Skip to main content

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.

4 units53 topics73 planned lessons~131–139 class periodsJava
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.2Variables and Data Types

1.3Expressions and Output

1.4Assignment Statements and Input

1.5Casting and Range of Variables

1.6Compound Assignment Operators

1.7Application Program Interface (API) and Libraries

1.8Documentation with Comments

  • 1.8.A
    Commenting Code

    Single-line, block and Javadoc comments; preconditions and postconditions.

1.9Method Signatures

1.10Calling Class Methods

1.11Math Class

1.12Objects: Instances of Classes

1.13Object Creation and Storage (Instantiation)

1.14Calling Instance Methods

  • 1.14.A
    Calling Instance Methods

    Dot notation, return values and NullPointerException.

1.15String Manipulation

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.A
    Selection and Repetition in Everyday Life

    Spotting decisions and repeated steps in real processes.

    Enroll Now

2.2Boolean Expressions

  • 2.2.A
    Relational Operators

    ==, !=, <, <=, > and >= with primitives.

    Enroll Now

2.3if Statements

  • 2.3.A
    if and if-else

    Choosing which code runs.

    Enroll Now

2.4Nested if Statements

  • 2.4.A
    Nested and Multiway Selection

    if-else-if chains and nested decisions.

    Enroll Now

2.5Compound Boolean Expressions

  • 2.5.A
    Compound Boolean Expressions

    &&, ||, ! and short-circuit evaluation.

    Enroll Now

2.6Comparing Boolean Expressions

  • 2.6.A
    Equivalent Boolean Expressions

    De Morgan's laws and truth tables.

    Enroll Now
  • 2.6.B
    Comparing Object References

    == vs. equals, and aliases.

    Enroll Now

2.7while Loops

  • 2.7.A
    When to Use a Loop

    Recognizing tasks that need iteration.

    Enroll Now
  • 2.7.B
    while Loops

    Loop conditions, off-by-one errors and infinite loops.

    Enroll Now

2.8for Loops

  • 2.8.A
    for Loops

    Initialize, test, update, and converting to while.

    Enroll Now

2.9Implementing Selection and Iteration Algorithms

  • 2.9.A
    Classic Loop Algorithms

    Sums, averages, min/max, counting and digit processing.

    Enroll Now

2.10Implementing String Algorithms

  • 2.10.A
    String Algorithms

    Reversing, counting and finding substrings.

    Enroll Now

2.11Nested Iteration

  • 2.11.A
    Nested Loops

    Loops inside loops and tracing their output.

    Enroll Now

2.12Informal Run-Time Analysis

  • 2.12.A
    Counting Statement Executions

    Comparing how long iterative code takes.

    Enroll Now
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.A
    Designing with Classes

    Attributes, behaviors and class diagrams.

    Enroll Now

3.2Impact of Program Design

  • 3.2.A
    Social and Ethical Impacts of Computing

    Benefits, harms, privacy and intellectual property.

    Enroll Now

3.3Anatomy of a Class

  • 3.3.A
    Access and Visibility

    public vs. private and encapsulation.

    Enroll Now

3.4Constructors

  • 3.4.A
    Writing Constructors

    Initializing instance variables.

    Enroll Now

3.5Methods: How to Write Them

  • 3.5.A
    Writing Methods

    Parameters, return values, accessors and mutators.

    Enroll Now

3.6Methods: Passing and Returning References of an Object

  • 3.6.A
    Passing and Returning Objects

    How references behave as parameters and return values.

    Enroll Now

3.7Class Variables and Methods

  • 3.7.A
    Static Methods

    Behaviors that belong to the class itself.

    Enroll Now
  • 3.7.B
    Static Variables

    Data shared by every instance.

    Enroll Now

3.8Scope and Access

  • 3.8.A
    Variable Scope

    Local, parameter and instance variables.

    Enroll Now

3.9this Keyword

  • 3.9.A
    Using this

    Referring to the current object.

    Enroll Now
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.A
    Privacy and Personal Data

    Risks of collecting and storing personal information.

    Enroll Now
  • 4.1.B
    Data Quality and Bias

    Why incomplete or biased data matters.

    Enroll Now
  • 4.1.C
    Choosing a Data Set

    Matching data to the question you're asking.

    Enroll Now

4.2Introduction to Using Data Sets

  • 4.2.A
    Patterns in Data Sets

    Describing data algorithms in words and diagrams.

    Enroll Now

4.3Array Creation and Access

  • 4.3.A
    Creating and Using Arrays

    Declaring, initializing, indexing and bounds.

    Enroll Now

4.4Array Traversals

  • 4.4.A
    Traversing Arrays

    Indexed and enhanced for loops.

    Enroll Now

4.5Implementing Array Algorithms

  • 4.5.A
    Array Algorithms

    Min/max, sums, shifting, reversing and duplicates.

    Enroll Now

4.6Using Text Files

  • 4.6.A
    Reading Data from Text Files

    File, Scanner and handling exceptions.

    Enroll Now

4.7Wrapper Classes

  • 4.7.A
    Integer and Double Wrapper Classes

    Autoboxing, unboxing and parsing.

    Enroll Now

4.8ArrayList Methods

  • 4.8.A
    ArrayList Methods

    add, get, set, remove and size.

    Enroll Now

4.9ArrayList Traversals

  • 4.9.A
    Traversing ArrayLists

    Loops, and removing items safely.

    Enroll Now

4.10Implementing ArrayList Algorithms

  • 4.10.A
    ArrayList Algorithms

    Filtering, counting, inserting and removing.

    Enroll Now

4.112D Array Creation and Access

  • 4.11.A
    Creating and Using 2D Arrays

    Rows, columns and indexing.

    Enroll Now

4.122D Array Traversals

  • 4.12.A
    Traversing 2D Arrays

    Row-major and column-major order.

    Enroll Now

4.13Implementing 2D Array Algorithms

  • 4.13.A
    2D Array Algorithms

    Row and column sums, searching and neighbors.

    Enroll Now

4.14Searching Algorithms

  • 4.14.A
    Linear Search

    Searching arrays and ArrayLists step by step.

    Enroll Now

4.15Sorting Algorithms

  • 4.15.A
    Selection and Insertion Sort

    Tracing each pass of the sort.

    Enroll Now

4.16Recursion

  • 4.16.A
    Recursive Methods

    Base cases, recursive calls and the call stack.

    Enroll Now

4.17Recursive Searching and Sorting

  • 4.17.A
    Recursion with Strings and Collections

    Tracing recursive algorithms on data.

    Enroll Now
  • 4.17.B
    Binary Search

    Halving the search range each step.

    Enroll Now
  • 4.17.C
    Merge Sort

    Splitting, sorting and merging.

    Enroll Now

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.