AP CSA FRQ Guide

2016 FRQ 1: RandomStringChooser

Implement a chooser that returns each available string at most once, then use it as the base for a letter chooser in the archive prompt.

ArrayList State and Legacy Inheritance22 minute targetArrayListrandomstatelegacy inheritance

Skills Tested

What this FRQ is really practicing

ArrayListrandomstatelegacy inheritance

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

  1. 1Part A: copy input strings into private mutable state and remove each chosen item.
  2. 2Part B: construct the letter chooser from the array returned by the provided helper.

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

Returning a random word without removing it.
Mutating the original array passed to the constructor.
Using a random index based on the original length after removals.

Self Check

Review questions before you submit

Uses private mutable storage for available strings.

Do not mutate the constructor parameter array directly.

Chooses a random valid index.

The random index must be based on the current number of available items.

Removes the string after returning it.

A string cannot be returned again after getNext chooses it.

Returns NONE when no strings remain.

Check the empty list before choosing a random index.

Uses getSingleLetters for the letter chooser constructor.

The archive part B requires the provided helper.

Practice Links

Where to go next