AP CSA FRQ Guides
AP Computer Science A FRQ guides by year and question.
Each guide gives students a crawlable study page with the skills tested, common mistakes, a starter approach, and a direct path back into FRQ Studio.
FRQ Archive
2025 AP CSA FRQs
DogWalker
Write two methods for a dog walker. The first chooses how many dogs to walk for one hour using company helper methods. The second runs an inclusive shift, calculates pay per dog, and adds the correct bonus.
Open guideFRQ 2SignedText
Write a complete class that stores name information, builds a formatted signature, and returns text with the signature placed correctly based on whether it is missing, already at the end, or at the beginning.
Open guideFRQ 3Round
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.
Open guideFRQ 4SumOrSameGame
Write a constructor that creates and fills a 2D integer puzzle with random values from 1 through 9. Then write a method that searches for a valid pair in the same row or a later row, clears both elements, and reports whether a pair was found.
Open guideFRQ Archive
2024 AP CSA FRQs
Feeder
Write two methods for a bird feeder simulation. One method simulates a single day with either normal bird feeding or an abnormal event. The other repeatedly simulates days and counts how many days food was available.
Open guideFRQ 2Scoreboard
Write a complete Scoreboard class for a game with two teams. The class stores team names, scores, and the active team, updates state after each play, and returns a formatted game status string.
Open guideFRQ 3WordChecker
Write two methods that analyze an ArrayList of words. One checks whether each word contains the previous word. The other returns a new list of words that start with a target after removing that starting target.
Open guideFRQ 4GridPath
Write two methods for a path through a 2D array. One chooses the next Location by comparing the right and below neighbors. The other repeatedly follows those choices and returns the sum of values on the path.
Open guideFRQ Archive
2023 AP CSA FRQs
AppointmentBook
Write two methods for scheduling appointments. The first finds the earliest free block of consecutive minutes in one class period. The second searches a range of periods, reserves the first valid block, and reports whether the appointment was made.
Open guideFRQ 2Sign
Write a complete Sign class that stores a message and line width. The class reports how many lines are needed and returns the message split into width-sized chunks separated by semicolons, with the empty-message case handled correctly.
Open guideFRQ 3WeatherData
Write two methods for analyzing daily high temperatures. The first removes values outside an inclusive valid range while preserving order. The second finds the length of the longest streak of temperatures above a threshold.
Open guideFRQ 4BoxOfCandy
Write two methods for a rectangular candy box. The first moves a candy upward into the first row of a specified column when possible. The second searches from the bottom row upward for the next candy of a requested flavor, removes it, and returns it.
Open guideFRQ Archive
2022 AP CSA FRQs
Game
Write two methods for a three-level game. The first computes the most recent game score based on which levels reached their goals and whether the game is a bonus game. The second plays the game repeatedly and returns the highest score.
Open guideFRQ 2Textbook
Write a complete Textbook class as a subclass of Book. Store the edition in Textbook, call the Book constructor for title and price, override the book-info method, and determine whether one textbook can substitute for another.
Open guideFRQ 3ReviewAnalysis
Write two methods for analyzing website reviews. The first computes the average rating from an array of Review objects. The second collects comments containing exclamation points, prefixes each with its index, and ensures the formatted comment ends with punctuation.
Open guideFRQ 4Data
Write two methods for a 2D integer grid. The first fills every grid cell with a random valid value that is divisible by 10 but not by 100. The second counts how many columns are in nondecreasing order from top to bottom.
Open guideFRQ Archive
2021 AP CSA FRQs
WordMatch
Write two methods for a word-matching game. The first scores a guess by counting overlapping substring matches inside the secret word and multiplying by the square of the guess length. The second chooses the better guess by score, using alphabetical order as the tie-breaker.
Open guideFRQ 2CombinedTable
Write a complete CombinedTable class that stores two SingleTable objects. The class determines whether the combined tables can seat a party and computes desirability from the component tables, including a height mismatch penalty.
Open guideFRQ 3ClubMembers
Write two ClubMembers methods. The first adds new MemberInfo objects from an array of names. The second removes all graduated members from the list and returns only the removed graduates who were in good standing.
Open guideFRQ 4ArrayResizer
Write two static methods for resizing a 2D array. The first determines whether one row has no zero values. The second creates a new 2D array containing only rows that have no zeros, preserving row order.
Open guideFRQ Archive
2020 AP CSA FRQs
Gizmo
Work with an online purchase list of Gizmo objects: count electronic purchases by maker, detect adjacent equal purchases, and describe a class-design change.
Open guideFRQ 2CheckDigit
Validate a number with a rightmost check digit by separating the base number and check digit, then describe how to track valid-call counts.
Open guideFRQ Archive
2019 AP CSA FRQs
APCalendar
Write two static calendar methods. The first counts leap years in an inclusive year range using a provided helper. The second computes the day-of-week code for a date using helper methods for the first day of the year and the day number within the year.
Open guideFRQ 2StepTracker
Write a complete StepTracker class. The class stores an active-day threshold, accepts one daily step reading at a time, tracks the number of active days, and reports the average steps per tracked day.
Open guideFRQ 3Delimiters
Write two methods for delimiter processing. The first extracts only the open and close delimiters from a token array. The second determines whether a delimiter list is balanced by tracking open delimiters that still need matches.
Open guideFRQ 4LightBoard
Write two LightBoard methods. The constructor fills a 2D boolean grid so each light is on with a given probability. The evaluation method counts on-lights in a column and decides whether a specific light should be on in the next step.
Open guideFRQ Archive
2018 AP CSA FRQs
FrogSimulation
Write two methods for a frog hopping simulation. The first runs one attempt until the frog reaches the goal, drops below zero, or uses all hops. The second runs many attempts and returns the success proportion.
Open guideFRQ 2WordPairList
Write the WordPairList constructor and a matching-count method. The constructor builds every ordered pair of words where the second word appears later in the array. The method counts pairs whose two strings match.
Open guideFRQ 3CodeWordChecker
Write a complete CodeWordChecker class. The class stores valid length bounds and a forbidden substring, supports two constructor forms, and reports whether a candidate string satisfies all rules.
Open guideFRQ 4ArrayTester
Write two static methods for array analysis. The first extracts a column from a 2D array. The second determines whether a square array is Latin by using the first row, column extraction, and provided helper methods.
Open guideFRQ Archive
2017 AP CSA FRQs
Digits
Build a Digits object from an integer and determine whether the stored digits are strictly increasing from left to right.
Open guideFRQ 2MultPractice
Write a practice-problem class that stores a constant first factor, advances the second factor, and returns the current multiplication prompt.
Open guideFRQ 3Phrase
Modify a Phrase class by replacing a specific occurrence of a target string and finding the last occurrence of a target.
Open guideFRQ 4Successors
Search a 2D array for values, return Position objects, and build a same-sized array that stores successor positions.
Open guideFRQ Archive
2016 AP CSA FRQs
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.
Open guideFRQ 2LogMessage
Parse log messages into machine and description fields, detect a whole word in a description, and remove matching messages from a system log.
Open guideFRQ 3Crossword
Decide which white squares in a crossword should be labeled and construct a grid of Square objects from a black-square pattern.
Open guideFRQ 4StringFormatter
Calculate word lengths and gap sizes, then format a list of words into a line with distributed spaces.
Open guideFRQ Archive
2015 AP CSA FRQs
DiverseArray
Write helper methods to sum arrays, produce row sums, and determine whether all row sums are different.
Open guideFRQ 2HiddenWord
Write a hint method for a word-guessing game that compares each guessed character with the hidden word.
Open guideFRQ 3SparseArray
Use a list of sparse entries to return a value at a row and column, then remove a column while shifting later columns.
Open guideFRQ 4NumberGroup
Define a number-group interface, implement a range, and check whether any stored group contains a value.
Open guideFRQ Archive
2014 AP CSA FRQs
ScrambleWord
Scramble a word by swapping selected adjacent characters and then update a list by replacing or removing words based on whether they change.
Open guideFRQ 2Director
Write a legacy GridWorld actor that alternates color and, on one color state, turns neighboring actors before acting.
Open guideFRQ 3SeatingChart
Fill a seating chart from a list of students and remove absent students while preserving the prompt-specified seat order.
Open guideFRQ 4Trio
Write a Trio menu item whose name combines three items and whose price charges for the two highest-priced items.
Open guideFRQ Archive
2013 AP CSA FRQs
MusicDownloads
Search a music download list by title and update counts, creating new records when a title has not appeared before.
Open guideFRQ 2TokenPass
Initialize a token game with random values and simulate distributing the current player tokens around a circular array.
Open guideFRQ 3GridWorldUtilities and JumpingCritter
Find empty locations in a grid and write a legacy critter that jumps to a random empty location or removes itself when none exists.
Open guideFRQ 4SkyView
Load one-dimensional telescope scan data into a 2D view using alternating row direction, then average a rectangular region.
Open guideFRQ Archive
2012 AP CSA FRQs
ClimbingClub
Add climb records to a club list, first as appended entries and then in alphabetical order by peak name.
Open guideFRQ 2RetroBug
Write a legacy bug that remembers the location and direction from its most recent act and can restore that state when possible.
Open guideFRQ 3HorseBarn
Find the index of a named horse in a barn array and consolidate horses toward the front while preserving order.
Open guideFRQ 4GrayImage
Count white pixels in a grayscale image and process pixels by subtracting values from diagonal positions when they exist.
Open guideFRQ Archive
2011 AP CSA FRQs
Sound
Limit sample amplitudes to a maximum absolute value and return a new array with leading silence removed.
Open guideFRQ 2AttractiveCritter
Write a legacy critter that attempts to move other actors one cell closer before moving like a normal critter.
Open guideFRQ 3FuelDepot
Find the lowest fuel tank at or below a threshold and move a robot to a target tank without moving past the ends.
Open guideFRQ 4RouteCipher
Fill a 2D character block from a message and encrypt message chunks by reading the block in the route order.
Open guideFRQ Archive
2010 AP CSA FRQs
MasterOrder
Calculate total cookie boxes across orders and remove all orders for a specified variety while returning the total removed boxes.
Open guideFRQ 2APLine
Write a line class that stores equation coefficients, returns slope as a double, and tests whether a point lies on the line.
Open guideFRQ 3Trail
Analyze trail elevation data to determine whether a segment is level and whether the whole trail is difficult.
Open guideFRQ 4GridChecker
Find an actor with the most occupied neighboring locations and collect occupied locations within two rows and columns of a target location.
Open guide