AP CSA FRQ Guide
2025 FRQ 3: Round
Write a constructor and a method for a tournament round. The constructor builds a ranked competitor list from an array of names. The method creates match objects by pairing competitors from opposite ends of the ranked list, with a special case for an odd number of competitors.
Skills Tested
What this FRQ is really practicing
Treat these skills as the study checklist. If any tag feels shaky, review that topic before attempting the full written response.
Starter Approach
How to begin without copying a solution
- 1Part A: initialize competitorList, create one Competitor for each name, assign rank based on array position, and preserve order.
- 2Part B: create and return a new ArrayList<Match> by pairing front-ranked and back-ranked competitors.
- 3Handle the odd-size case by ignoring the best-ranked competitor before pairing the remaining competitors.
Write a first attempt before revealing any solution outline. Most AP CSA FRQ progress comes from tracing your own code and finding the missing case.
Common Mistakes
Mistakes to watch for while writing
Self Check
Review questions before you submit
Includes the Round constructor with a String[] parameter.
The constructor must be named Round and accept the names array.
Initializes competitorList as a new ArrayList.
The constructor should create the list before adding competitors.
Traverses the names array in order.
Use a loop from index 0 through names.length - 1.
Creates Competitor objects from the names.
Each name should become a new Competitor object.
Assigns ranks starting at 1, not 0.
The rank for names[i] should be i + 1.
Defines buildMatches with the correct return type.
The method should return an ArrayList of Match objects.
Creates a new ArrayList to return.
Do not modify competitorList; build a separate result list.
Accounts for an odd number of competitors.
Use size() % 2, or initialize the left index based on odd/even size.
Practice Links
