2023 AP CSA Free Response Questions | All Solutions & Scoring
2023 AP CSA Free Response Questions
Complete Java solutions, scoring rubrics, common mistakes, and exam tips for every 2023 AP CSA FRQ. All question text verified from the official College Board PDF.
The 2023 AP CSA FRQs
The 2023 exam followed the standard 4-question format. Each FRQ type appears in the same order every year, so you can prepare specifically for each position. Here are all four questions with direct links to full solutions.
AppointmentBook
Write findFreeBlock (consecutive-block counter with reset) and makeAppointment (loop periods, call findFreeBlock, guard before reserveBlock).
Sign
Write a complete Sign class with constructor, ceiling-division numberOfLines(), and getLines() building semicolon-delimited output with no trailing semicolon.
WeatherData
Find longestHeatWave in an ArrayList of temperatures using the same consecutive-run pattern as FRQ 1 but applied to a list.
BoxOfCandy
Traverse columns top-to-bottom, swap non-null candies to fill gaps, check for null before calling getFlavor(), save reference before nulling.
Quick Reference: All Four 2023 FRQs
| FRQ | Problem | Type | Difficulty | Key Skill |
|---|---|---|---|---|
| FRQ 1 | AppointmentBook | Methods | Medium | Counter reset on mismatch |
| FRQ 2 | Sign | Class | Medium | Ceiling division: (a+b-1)/b |
| FRQ 3 | WeatherData | ArrayList | Medium | Shared pattern with FRQ 1 (counter reset) |
| FRQ 4 | BoxOfCandy | 2D Array | Hard | Column-first traversal, null guard, .equals() |
How Hard Were the 2023 AP CSA FRQs?
Overall: moderate. The standout feature of 2023 was the shared algorithmic pattern between FRQ 1 and FRQ 3 — both used a consecutive-run counter that resets to zero on mismatch. Students who recognized this connection moved through both problems quickly.
FRQ 2 (Sign) required ceiling division, which trips up students who default to integer floor division. FRQ 4 (BoxOfCandy) had the most traps: column-first traversal, null guards before calling methods, .equals() vs == for Strings, and saving a reference before setting a cell to null.
FRQ 1: AppointmentBook — Medium
Two-method problem. findFreeBlock uses a consecutive counter with reset on mismatch. makeAppointment loops over possible start periods, calls findFreeBlock, and guards with reserveBlock. Very learnable pattern.
FRQ 2: Sign — Medium
Class writing with a ceiling-division trap in numberOfLines(). Students who used plain integer division got floors instead of ceilings. getLines() required building a semicolon-delimited string with no trailing semicolon.
FRQ 3: WeatherData — Medium
Same counter-reset pattern as FRQ 1, applied to an ArrayList of temperatures. Students who solved FRQ 1 had a massive head start. The main risk was using the wrong comparison or not resetting the counter correctly.
FRQ 4: BoxOfCandy — Hard
Multiple traps in one problem: column-first traversal (not row-first), null check before getFlavor(), .equals() instead of ==, and saving the candy reference before setting the cell to null. Partial credit required getting each trap right.
FRQ Type Pattern (Same Every Year Since 2019)
Since 2019, every AP CSA exam uses the same four question types in the same order. Knowing this pattern is a strategic advantage — you can rehearse your approach for each slot before exam day.
FRQ 1 — Methods & Control Structures
Write 1–2 methods using loops, conditionals, and expressions. Usually two parts: (a) implements helper logic, (b) calls (a) or extends it.
FRQ 2 — Class Writing
Write a complete class: instance variables, constructor, accessor/mutator methods, and at least one behavior method. Tests OOP design and encapsulation.
FRQ 3 — ArrayList Manipulation
Traverse, filter, modify, or build an ArrayList. Common traps: mutating while iterating, index drift after removals, and wrong method names.
FRQ 4 — 2D Array Operations
Navigate a 2D grid using nested loops. Tests row/column indexing, boundary awareness, and accumulation patterns. Often the most time-consuming question.
How to Use This Page
For best results: attempt each FRQ yourself first (set a 22-minute timer), then open the solution page and compare your code to the sample answer line by line. Pay special attention to the scoring rubric — you will often find you earned more points than you thought.
- Click any FRQ card above to open the full solution page.
- Each solution page includes the original question text, a complete Java solution, scoring rubric breakdown, and common mistakes to avoid.
- Use the FRQs by Topic page to find more practice on any specific concept.
- See all years at the FRQ Archive.
Frequently Asked Questions About the 2023 AP CSA FRQs
What are the 2023 AP CSA FRQs?
FRQ 1 AppointmentBook (Methods), FRQ 2 Sign (Class Writing), FRQ 3 WeatherData (ArrayList), FRQ 4 BoxOfCandy (2D Array). Each worth 9 points, 36 total, comprising 45% of the exam score.
Which 2023 FRQs share the same algorithmic pattern?
FRQ 1 (findFreeBlock) and FRQ 3 (longestHeatWave) both use the consecutive-run counter pattern: increment on match, reset to zero on mismatch. Recognizing this connection was a significant advantage on exam day.
What is the most common mistake on 2023 FRQ 4 BoxOfCandy?
Using == instead of .equals() for the flavor String comparison, and calling getFlavor() without first checking for null. Students also lost points for saving the candy reference after nulling the cell rather than before.
How hard were the 2023 AP CSA FRQs?
Overall moderate. FRQ 1 and 3 shared a pattern which helped students who recognized it. FRQ 4 had the most traps: column traversal order, null guards, equals vs ==, and save-before-null.
Get in Touch
Whether you're a student, parent, or teacher — I'd love to hear from you.
Just want free AP CS resources?
Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.
Message Sent!
Thanks for reaching out. I'll get back to you within 24 hours.
Prefer email? Reach me directly at [email protected]