AP Computer Science A — Pacing Guide 2026–27¶
Aug 17, 2026 – Apr 2, 2027 · 33 Calendar Weeks · 28 Instructional Weeks
Aligned to the 2026–27 College Board Course Exam Description(CED) (4-Unit Revision) and Oracle Java Foundations (1Z0-811)
Instructional Calendar Snapshot¶
Break |
Dates |
Weeks Lost |
|---|---|---|
Thanksgiving |
Nov 23 – Nov 27 |
Week 15 |
Winter Break |
Dec 21 – Jan 8 |
Weeks 19–21 |
Spring Recess |
Mar 29 – Apr 5 |
Week 33 |
28 instructional weeks total. Exams and projects are embedded within each unit block — no dedicated review weeks are counted separately.
Course Overview – Dates need to be revised¶
Unit |
Title |
Exam Weight |
Instructional Weeks |
Calendar Span |
|---|---|---|---|---|
Unit 1 |
Using Objects and Methods |
15–25% |
5 |
Aug 17 – Sep 20 |
Unit 2 |
Selection and Iteration |
25–35% |
6 |
Sep 30 – Nov 8 |
Unit 3 |
Class Creation |
10–18% |
4 |
Nov 11 – Dec 13 |
Inheritance |
Inheritance (Oracle + AP supplement) |
—* |
3 |
Dec 16 – Jan 24 |
Unit 4 |
Data Collections |
30–40% |
9 |
Jan 27 – Mar 28 |
AP Prep |
Practice Exams + Final Project |
— |
1 |
Mar 24 – Mar 28 |
* Inheritance was removed from the 2025–26 AP CSA CED exam but is retained here for Oracle Java Foundations (1Z0-811) alignment and deeper OOP understanding.
Key 2025–26 AP CED Changes: 10 units consolidated into 4 Inheritance (old Unit 9) removed from AP exam File I/O with Scanner added (Unit 4) Exam fully digital via Bluebook · 42 MCQ / 4 FRQ
UNIT 1 — Using Objects and Methods¶
Exam Weight: 15–25% · Instructional Weeks 1–5 (Aug 19 – Sep 20)
Week |
Dates |
AP CSA Topics |
Oracle 1Z0-811 Alignment |
Project |
|---|---|---|---|---|
1 |
Aug 19–23 |
Orientation & Course Structure · 1.1 Algorithms, Programs & Compilers |
What Is Java? · Features & real-world applications · JDK & JRE · Compile & execute a program |
|
2 |
Aug 26–30 |
1.2 Variables, Data Types & Expressions · 1.3 Assignment Statements & Input (Scanner) |
Working with Java Data Types · Declare & initialize variables · |
|
3 |
Sep 2–6 |
1.4 Compound Assignment Operators · 1.5 Casting and Ranges of Variables |
Working with Java Operators · Arithmetic, increment/decrement, relational & assignment operators · Casting & type promotion |
|
4 |
Sep 9–13 |
1.6 Class (Static) Methods & the Math Class · 1.7 Objects, Instantiation & References |
Working with the Random and Math Classes · OOP components · Class vs. instance variables |
|
5 |
Sep 16–20 |
1.8 Calling Instance Methods · 1.9 String Objects & String Methods · 1.10 APIs, Documentation & Comments |
Java Methods · Working with the String Class · String methods & escape sequences · Comments & import |
|
— |
Sep 23–27 |
★ Unit 1 Exam · Oracle 1Z0-811 Practice: What Is Java? / Java Basics / Data Types / Operators / String Class |
✔ |
UNIT 2 — Selection and Iteration¶
Exam Weight: 25–35% · Instructional Weeks 6–11 (Sep 30 – Nov 8)
Week |
Dates |
AP CSA Topics |
Oracle 1Z0-811 Alignment |
Project |
|---|---|---|---|---|
6 |
Sep 30–Oct 4 |
2.1 Boolean Expressions · 2.2 if Statements & Control Flow · 2.3 if-else Statements |
Working with Java Operators · Relational & conditional operators ( |
|
7 |
Oct 7–11 |
2.4 else-if Statements · 2.5 Compound Boolean Expressions · 2.6 Equivalent Boolean Expressions (De Morgan’s) |
Using Decision Statements · |
|
8 |
Oct 14–18 |
2.7 Comparing Objects · 2.8 while Loops |
Using Decision Statements · |
|
9 |
Oct 21–25 |
2.9 for Loops · 2.10 Developing Algorithms Using Strings |
Using Looping Statements · |
|
10 |
Oct 28–Nov 1 |
2.11 Nested Iteration · 2.12 Informal Code Analysis & Debugging |
Using Looping Statements · Compare |
|
11 |
Nov 4–8 |
Unit 2 Review & FRQ Practice |
Oracle 1Z0-811 Practice: Decision Statements / Looping / Debugging |
|
— |
Nov 11–15 |
★ Unit 2 Exam |
✔ |
UNIT 3 — Class Creation¶
Exam Weight: 10–18% · Instructional Weeks 12–15 (Nov 11 – Dec 13)
Week |
Dates |
AP CSA Topics |
Oracle 1Z0-811 Alignment |
Project |
|---|---|---|---|---|
12 |
Nov 11–15 |
3.1 Anatomy of a Class · 3.2 Constructors |
Classes & Constructors · |
|
13 |
Nov 18–22 |
3.3 Documentation & Comments · 3.4 Accessor Methods · 3.5 Mutator Methods |
Basic Java Elements · Javadoc comments · Java Methods: accessor & mutator methods |
|
— |
Nov 25–29 |
🦃 Thanksgiving Break |
||
14 |
Dec 2–6 |
3.6 Writing Methods · 3.7 Static Variables & Methods · 3.8 Scope & Access |
Java Methods · Overloaded methods · Static methods · |
|
15 |
Dec 9–13 |
3.9 |
Classes & Constructors · Object fields & constructor relationship |
|
— |
Dec 16–20 |
★ Unit 3 Exam |
✔ |
|
— |
Dec 23–Jan 8 |
❄️ Winter Break |
INHERITANCE — Superclasses, Subclasses & Polymorphism¶
Oracle Required · AP Supplemental · Instructional Weeks 16–18 (Jan 13 – Jan 31)
Inheritance is retained to satisfy Oracle Java Foundations (1Z0-811) requirements and provides valuable OOP depth. While removed from the AP CSA exam, it reinforces Unit 3 class design skills.
Week |
Dates |
Topics |
Oracle 1Z0-811 Alignment |
Project |
|---|---|---|---|---|
16 |
Jan 13–17 |
9.1 Creating Superclasses & Subclasses · 9.2 Writing Constructors for Subclasses |
Classes & Constructors · Relationship between objects and members · OOP components |
|
17 |
Jan 20–24 |
9.3 Overriding Methods · 9.4 |
Java Methods · Method overriding vs. overloading · |
|
18 |
Jan 27–31 |
9.5 Reference Hierarchies · 9.6 Polymorphism · 9.7 Object Superclass · Review |
OOP components · Polymorphism · |
|
— |
— |
★ Inheritance Exam |
✔ |
UNIT 4 — Data Collections¶
Exam Weight: 30–40% · Instructional Weeks 19–27 (Feb 3 – Mar 28)
Week |
Dates |
AP CSA Topics |
Oracle 1Z0-811 Alignment |
Project |
|---|---|---|---|---|
19 |
Feb 3–7 |
4.1 Array Creation & Access · 4.2 Traversing Arrays · 4.3 Enhanced for Loop for Arrays |
Arrays and ArrayLists · One-dimensional arrays · Compare array vs. ArrayList · Enhanced |
|
20 |
Feb 10–14 |
4.4 Developing Algorithms Using Arrays · Arrays Review & FRQ Practice |
Arrays and ArrayLists · Traversal algorithms |
|
— |
Feb 14 |
★ Arrays Exam |
||
21 |
Feb 17–21 |
4.5 Introduction to ArrayList · 4.6 ArrayList Methods |
Arrays and ArrayLists · Create & manipulate ArrayList · Wrapper Classes: |
|
22 |
Feb 24–28 |
4.7 Traversing ArrayLists · 4.8 Developing Algorithms Using ArrayLists |
Arrays and ArrayLists · Traverse with iterators & loops (incl. enhanced |
|
23 |
Mar 3–7 |
4.9 Searching (Linear & Binary) · 4.10 Sorting (Selection & Insertion) · 4.11 Ethical Issues Around Data Collection |
||
— |
Mar 7 |
★ ArrayList Exam |
✔ |
|
24 |
Mar 10–14 |
4.12 2D Arrays · 4.13 Traversing 2D Arrays |
||
— |
Mar 14 |
★ 2D Array Exam |
✔ |
|
25 |
Mar 17–21 |
4.14 File I/O with Scanner (NEW 2025–26) · 4.15 Recursion |
Using Looping Statements · |
|
26 |
Mar 24–28 |
4.16 Recursive Searching & Sorting · Unit 4 Review · AP Practice Exams (2014, 2015, 2020) |
||
— |
Mar 28 |
★ Unit 4 Exam |
||
— |
Mar 31–Apr 2 |
🌱 Spring Recess |
Final Project — White Tower¶
Event |
Date |
|---|---|
Project Assigned |
Mar 24 |
Spring Recess |
Mar 31 – Apr 2 |
Project Due / Presentations |
Apr 2 |
AP Exam (Bluebook, Digital) |
May 2025 |
Oracle Java Foundations (1Z0-811) — Complete Topic Coverage Map¶
1Z0-811 Domain |
AP CSA Coverage |
When |
|---|---|---|
What Is Java? · Java Basics |
1.1 Algorithms & Compilers · JDK/JRE |
Week 1 |
Basic Java Elements |
1.3 Assignment & Input · 1.10 APIs & Comments |
Weeks 2, 5 |
Working with Java Data Types |
1.2 Variables & Expressions · 1.5 Casting |
Weeks 2–3 |
Working with Java Operators |
1.4 Compound Assignment · 2.1–2.5 Boolean & Relational |
Weeks 3, 6–7 |
Working with the String Class |
1.9 String Objects & Methods |
Week 5 |
Working with Random & Math Classes |
1.6 Static Methods & Math Class |
Week 4 |
Using Decision Statements |
2.2–2.7 if / else-if / switch / Comparing Objects |
Weeks 6–8 |
Using Looping Statements |
2.8–2.11 Loops · 4.3 Enhanced for · 4.14 File I/O |
Weeks 8–10, 19, 25 |
Debugging & Exception Handling |
2.12 Debugging · try/catch |
Week 10 |
Classes & Constructors |
3.1–3.2 Anatomy of a Class · Constructors |
Week 12 |
Java Methods |
3.4–3.8 Accessor / Mutator / Overloaded / Static Methods |
Weeks 13–14 |
Arrays and ArrayLists |
4.1–4.8 Arrays · ArrayList · Traversal · Algorithms |
Weeks 19–22 |
OOP & Inheritance (1Z0-811 only) |
9.1–9.7 Superclasses · Subclasses · Polymorphism · |
Weeks 16–18 |
Assessment Calendar¶
Assessment |
Date |
Project? |
|---|---|---|
Unit 1 Exam |
Sep 23–27 (Week 6) |
✔ |
Unit 2 Exam |
Nov 11–15 (Week 11) |
✔ |
Unit 3 Exam |
Dec 16–20 (Week 15) |
✔ |
Inheritance Exam |
Jan 27–31 (Week 18) |
✔ |
Arrays Exam |
Feb 14 (Week 20) |
|
ArrayList Exam |
Mar 7 (Week 23) |
✔ |
2D Array Exam |
Mar 14 (Week 24) |
✔ |
Unit 4 Exam |
Mar 28 (Week 26) |
|
White Tower Final Project |
Apr 2 |
✔ |
AP Exam (Bluebook, Digital) |
May 2025 |
AP CSA 2025–26 CED: apcentral.collegeboard.org/courses/ap-computer-science-a Oracle 1Z0-811 Exam: education.oracle.com/java-foundations/pexam_1Z0-811
Getting Started: VS Code for AP Computer Science A (Windows 11)¶
This guide gets your machine ready to write, run, and organize Java programs for this course. Follow it top to bottom the first time — after that, you’ll only ever need the “Starting a New Assignment” section.
1. Install VS Code¶
Go to code.visualstudio.com and download the Windows installer (it detects Windows 11 automatically).
Run the installer. On the “Select Additional Tasks” screen, check these — they save you time later:
Add “Open with Code” action to Windows Explorer file context menu
Add “Open with Code” action to Windows Explorer directory context menu
Register Code as an editor for supported file types
Add to PATH
🛡️ Windows may show a blue “Windows protected your PC” screen when you run the installer — this is normal for new installers, not a sign anything is wrong. Click More info, then Run anyway.
Finish the install and launch VS Code.
📌 Personal laptop vs. school laptop: If you’re using a CAMS-provided laptop, check with your instructor first — VS Code may already be installed, or installing new software may require permission.
2. Install a Java Development Kit (JDK)¶
VS Code is just an editor — it doesn’t compile or run Java on its own. You need a JDK installed separately.
Go to adoptium.net (Eclipse Temurin — a free, widely-used JDK build).
Adoptium doesn’t auto-detect your system — you’ll pick four things manually. Set them to:
Operating System: Windows
Architecture: x64
Package Type: JDK
Version: the current LTS release (the highest-numbered version marked LTS — do not pick Java 8, it’s outdated)
Click the big Latest Release download button. This downloads the
.msiinstaller.Run the installer. You may see the same “Windows protected your PC” SmartScreen warning as before — click More info → Run anyway.
On the “Custom Setup” screen, make sure these are all enabled (they may be off by default):
Add to PATH
Set JAVA_HOME variable
JavaSoft (Oracle) registry keys
Finish the install.
Confirm it worked: open Command Prompt (search “cmd” in the Start menu) and type:
java -version
javac -version
Both commands should print a version number. If either says “not recognized,” restart your computer (PATH changes need a restart to take effect) and try again.
3. Install the Java Extension Pack in VS Code¶
Open VS Code.
Open the Extensions panel:
Ctrl + Shift + X.Search for “Extension Pack for Java” (publisher: Microsoft) and click Install.
This one install pulls in everything you need:
Included Extension |
What It Does |
|---|---|
Language Support for Java(TM) by Red Hat |
Core language features — autocomplete, error checking, navigation |
Debugger for Java |
Lets you set breakpoints and step through code line by line |
Test Runner for Java |
Runs JUnit tests (not needed often in this course, but included) |
Maven for Java |
Build tool support (you won’t use this for class assignments) |
Project Manager for Java |
Powers the “Run” ▷ button above |
Visual Studio IntelliCode |
AI-assisted autocomplete suggestions — fine for suggestions, but remember the Academic Honesty Policy: complete AI-generated solutions are not allowed |
Restart VS Code after installing (it will prompt you to).
⚠️ If VS Code still doesn’t recognize Java after restarting (no error, but also no Run link, or a “No Java Runtime” message): open the Command Palette (
Ctrl+Shift+P), type Java: Configure Java Runtime, and confirm your installed JDK shows up and is selected. This is a common gap even whenJAVA_HOMEwas set correctly during install — VS Code’s extension sometimes needs a manual nudge to find it.
4. Verify Everything Works — Hello World¶
Create a folder anywhere (Desktop is fine for this test) called
HelloTest.Open it in VS Code: File → Open Folder → select
HelloTest.Create a new file named exactly
Main.javaand paste in:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Save the file (
Ctrl + S).You should see a ▷ Run link appear directly above
public static void main. Click it, or pressCtrl + F5.A terminal panel opens at the bottom and prints
Hello, World.
If you don’t see the Run link, close and reopen the folder — the Java extension sometimes needs a moment to index a brand-new workspace.
⚠️ File name must match class name. If your class is
public class WeightOnJupiter, the file must be namedWeightOnJupiter.java— notMain.java. This is a compile-time error in Java, not just a style suggestion.
5. Organizing Your Coursework¶
Set this up once, at the start of the year.
Create one parent folder for the entire course — for example, on your Desktop or in Documents:
AP-CSA-JAVA/
├── Unit1-UsingObjectsAndMethods/
│ ├── 1.2.1-Allowance/
│ │ └── Main.java
│ ├── 1.2.2-ScannerClass/
│ │ └── Main.java
│ ├── 1.3.1-WeightOnJupiter/
│ │ └── Main.java
│ ├── 1.7.2-Magic8Ball/
│ │ └── Main.java
│ ├── 1.10.1-MissionControl/
│ │ └── Main.java
│ └── FinalProject-ThemePark/
│ ├── Main.java
│ ├── Ride.java
│ └── Guest.java
├── Unit2-SelectionAndIteration/
│ └── ...
├── Unit3-ClassCreation/
│ └── ...
└── Unit4-DataCollections/
└── ...
One subfolder per unit, one subfolder per assignment, named with the assignment number so it sorts and matches the syllabus (
1.3.1-WeightOnJupiter, notweightorhw3).Keep every file for one assignment —
Main.java, any supporting classes, your Test Cases document — together in that assignment’s folder.
⚠️ The one real gotcha: don’t open the whole
AP-CSA-JAVAfolder as your workspace. VS Code’s Java extension treats everything inside an open folder as one big project. Since almost every assignment usespublic class Main, having a dozenMain.javafiles under one open workspace will cause “duplicate class” errors that have nothing to do with your code.Instead: each time you sit down to work on an assignment, use File → Open Folder and open only that assignment’s folder (e.g., just
1.3.1-WeightOnJupiter, notUnit1-UsingObjectsAndMethodsand notAP-CSA-JAVA). VS Code remembers your recent folders under File → Open Recent, so switching between assignments is one click, not a re-navigation every time.
6. Recommended Settings (Optional but Worth It)¶
Open Settings with Ctrl + ,, then search for and enable:
Files: Auto Save → set to
afterDelay— stops losing work if you forget to save before running.Editor: Format On Save → auto-cleans indentation to match the course’s style guidelines (4 spaces, brace placement) every time you save.
7. Common First-Day Problems¶
Problem |
Fix |
|---|---|
“Windows protected your PC” warning on install |
This is normal SmartScreen behavior for new installers, not a sign of a problem — click More info → Run anyway |
|
Restart the computer — PATH changes need a fresh session |
No “▷ Run” link above |
Make sure the file is saved with a |
Extension installed but Java still not detected |
Open the Command Palette ( |
“Duplicate class Main” error |
You opened a parent folder containing more than one |
Class name / filename mismatch error |
The |
Extension won’t install (school network) |
Some school networks block the VS Code Marketplace — ask your instructor about offline |