Planned online prep for AP CS & Cybersecurity info@leventaltay.com
AP CSA Guide

How to Solve AP CSA FRQs: Java Free-Response Tips

On the AP CSA free-response (FRQ) section, points come from building the right structure more than from perfectly working code. This guide summarizes a step-by-step approach you can follow when you sit down with an FRQ, and the Java mistakes that cost the most points.

A step-by-step FRQ approach

  • 1. Read the question twice: Restate what's being asked in your own words.
  • 2. Mark what's given: Note the classes, methods, and sample outputs provided — use them exactly.
  • 3. Write the signature: Fix the method name, parameter types, and return type first.
  • 4. Build in small pieces: Construct the loop, condition, and return statement step by step.
  • 5. Trace it mentally: Run your code on a small example on paper.

Read the method signature correctly

The most commonly lost FRQ points come from signature mistakes. Is the return type void, or does it return a value? What types are the parameters? Forgetting to return in a method that must return a value, or returning the wrong type, directly costs points. Match the signature to the definition in the question exactly.

Partial-credit strategy

Each FRQ is scored with a rubric, broken into small point pieces. So:

  • Don't leave a blank where you're stuck; try to write the correct structure as code.
  • Always write the parts you're sure of (loop setup, condition, return) — each can be a point.
  • Don't rewrite provided helper methods from scratch; call them. Reinventing the wheel wastes time.

Common Java mistakes

  • Boundary / off-by-one: Confusing < and <= in loop bounds; going out of array range.
  • .length vs .length() vs .size(): .length for arrays, .length() for String, .size() for ArrayList.
  • == vs .equals(): Use .equals() to compare objects (especially String).
  • String immutability: String methods return a new String; they don't change the original.
  • Removing while iterating: Deleting elements while looping over an ArrayList causes index shifting.
  • Confusing printing with returning: If the question wants a return, System.out.println earns no credit.

How to practice

The most effective method is to solve past FRQs under timed conditions and then score your own answer using the official scoring guidelines. This teaches you how the rubric thinks, and you close recurring mistakes with an error log.

Let's work on earning FRQ points together

You can get stronger on the FRQ with one-on-one, rubric-scored practice on past questions.