AP CSA - Advanced Placement Computer Science A Practice Test

โ–ถ

The AP CSA Unit 7 Progress Check FRQ is one of the most challenging sections students encounter when studying AP Computer Science A. Unit 7 focuses on ArrayList operations, including traversal, searching, sorting, and manipulation โ€” skills that appear consistently on the actual AP exam FRQ section.

The AP CSA Unit 7 Progress Check FRQ is one of the most challenging sections students encounter when studying AP Computer Science A. Unit 7 focuses on ArrayList operations, including traversal, searching, sorting, and manipulation โ€” skills that appear consistently on the actual AP exam FRQ section.

Students who dedicate focused practice to this unit's free-response questions dramatically improve their overall AP exam scores, since ArrayList concepts account for a significant portion of the coding tasks you will encounter. If you want a comprehensive overview of syntax and methods before diving into FRQs, reviewing the ap csa unit 7 progress check frq resource is an excellent starting point.

ArrayList is Java's dynamic resizable array, defined in the java.util package, and it differs from standard arrays in several important ways. Unlike fixed-length arrays, an ArrayList can grow or shrink at runtime. You add elements with add(), remove them with remove(), and access them with get(). The FRQ portion of the Progress Check tests whether you can apply these methods correctly inside loops, conditionals, and multi-method class designs. Examiners look for proper index management, especially when removing elements during traversal, which is a classic source of off-by-one errors that cost students points.

The College Board releases Unit 7 Progress Check FRQs as part of AP Classroom, giving teachers and students a preview of the question style before the official May exam. These questions typically ask you to write or complete methods that manipulate an ArrayList of objects or primitives. Common tasks include removing duplicates, finding maximums or minimums, filtering based on a condition, shifting elements, and accumulating results into a new list. Mastering each of these patterns requires both conceptual understanding and repeated hands-on coding practice.

One reason students struggle with Unit 7 FRQs is that they confuse array syntax with ArrayList syntax. Arrays use bracket notation (arr[i]) and have a fixed length property, while ArrayLists use method calls (list.get(i), list.size()). On the AP exam, mixing these up โ€” even a single stray bracket or wrong method name โ€” can cost you a point. The scoring guidelines for FRQs award points for each correct operation, so one small syntax error can cascade into multiple lost points if it breaks the logic of your loop.

Preparation strategy matters as much as content knowledge. Top-scoring students typically work through at least 20 to 30 FRQ practice problems from Unit 7 before exam day. They practice writing complete method bodies from scratch, not just filling in blanks, because the actual AP exam rarely provides scaffolded partial code. You should time yourself to ensure you can write a clean, correct ArrayList method in under 10 minutes, which is the pace required to finish the entire FRQ section comfortably. Simulated timed practice is irreplaceable for building this speed.

The Unit 7 Progress Check FRQ also tests your ability to reason about algorithm efficiency and correctness. You may be asked to trace through code that already contains an ArrayList traversal, identify the output, or spot a bug. These trace-and-debug questions require you to mentally simulate each iteration of a loop, tracking how the ArrayList's size and contents change with each operation. Students who practice tracing by hand โ€” writing out the ArrayList state after each line โ€” develop the mental model needed to answer both the written and multiple-choice portions of the Progress Check accurately.

This guide provides everything you need to succeed: key concepts, scoring strategies, practice question walkthroughs, study schedules, and links to targeted quizzes. Whether you are approaching this material for the first time or doing final review before the AP exam, the sections below will give you a structured path from confusion to confidence with Unit 7 ArrayList FRQs.

AP CSA Unit 7 Progress Check by the Numbers

๐Ÿ“Š
~25%
FRQ Weight
โฑ๏ธ
90 min
FRQ Section Time
๐ŸŽฏ
9 pts
Points Per FRQ
๐Ÿ“š
Unit 7
College Board Unit
๐Ÿ†
54%
AP Exam Pass Rate
Try Free AP CSA Unit 7 Progress Check FRQ Practice Questions

Unit 7 FRQ Format & Structure

โœ๏ธ Method Writing Tasks

You are given a class with an ArrayList field and asked to write one or more methods from scratch. These tasks assess your ability to traverse, filter, modify, and return results from an ArrayList using correct Java syntax and logic.

๐Ÿ“‹ Code Completion Tasks

Partial method bodies are provided with blank lines or TODO comments. You fill in the missing code. These questions test knowledge of loop control, conditional logic, and the specific ArrayList methods required to produce the correct output.

๐Ÿ”„ Trace and Debug Tasks

A complete code segment is shown and you must determine its output or identify a logical error. These questions reward students who practice hand-tracing ArrayList loops step by step, tracking index values and list contents at each iteration.

๐Ÿ—จ๏ธ Class Design Tasks

You design or extend a class that uses an ArrayList as an instance variable. These multi-part questions combine Unit 5 (writing classes) with Unit 7 (ArrayList), and often carry the highest point values on the Progress Check FRQ.

Understanding which ArrayList methods appear most often on the AP CSA Unit 7 Progress Check FRQ is essential for efficient preparation. The College Board's Course and Exam Description identifies five core ArrayList methods: add(E obj), add(int index, E obj), remove(int index), get(int index), and set(int index, E obj). You must also know size(), which returns the current number of elements. Every FRQ involving ArrayLists will use at least three of these methods in combination, so fluency with all six is non-negotiable for scoring full points.

Traversal patterns are at the heart of Unit 7 FRQs. The standard forward traversal uses a for loop from index 0 to list.size() - 1. A for-each loop (for (Type item : list)) is simpler but cannot be used when you are modifying the list during traversal.

When you need to remove elements, you must use an index-based loop and decrement the index after each removal, or iterate backward from list.size() - 1 down to 0. Failing to adjust the index after a removal is the single most common error on Unit 7 FRQs and is specifically tested in the Progress Check.

The ArrayList's relationship with generics is another tested concept. In AP CSA, you will always see typed ArrayLists like ArrayList<String> or ArrayList<Integer>. When storing primitive values like int or double, Java autoboxes them into their wrapper classes (Integer, Double). The FRQ may ask you to compare elements, and students must remember that == compares object references, not values, for wrapper types. You should use .equals() for String comparisons and standard relational operators for numeric comparisons after unboxing.

Searching algorithms built on ArrayLists are a staple of Unit 7 FRQ problems. Linear search iterates through the list from the first element to the last, returning the index of the target when found or -1 if the target is absent. Sequential search is the only search algorithm you need for unsorted ArrayLists in AP CSA, since binary search requires a sorted structure. The FRQ may ask you to find the first occurrence, the last occurrence, or count all occurrences of a given value โ€” each variation requires a slightly different loop structure that you should practice writing from memory.

Sorting concepts tested in Unit 7 include selection sort and insertion sort applied to ArrayLists. Selection sort repeatedly finds the minimum element in the unsorted portion and swaps it to the front, requiring nested loops and a temporary variable. Insertion sort builds a sorted sublist one element at a time, shifting larger elements right to make room for each new element. On the Progress Check FRQ, you may be asked to trace a sort algorithm rather than write it from scratch, but being able to write both algorithms from memory ensures you can handle any variation the question presents.

ArrayList manipulation methods beyond basic add and remove are also tested. The set(int index, E obj) method replaces an element at a specific position without changing the list size โ€” students sometimes confuse it with add(int index, E obj), which inserts and shifts elements. Being clear on this distinction prevents logic errors. You might also encounter tasks where you copy elements between two ArrayLists, merge lists, or split a list into parts based on a condition. These multi-step operations require careful index tracking and should be practiced as complete method-writing exercises, not just conceptual review.

Finally, the Unit 7 Progress Check FRQ frequently combines ArrayList skills with object-oriented programming from earlier units. A question might ask you to maintain an ArrayList of custom objects (e.g., ArrayList<Student>) and call accessor methods on each element inside a loop. Accessing an object's field through list.get(i).getGrade() is syntactically denser than working with primitives, and students who have not practiced this pattern under timed conditions often write incorrect or incomplete syntax. Combining data structure traversal with class method calls is a hallmark of the hardest Unit 7 FRQ tasks.

AP CSA Arrays and ArrayLists
Practice core ArrayList methods, traversal patterns, and array manipulation for the AP CSA exam.
AP CSA Arrays and ArrayLists 2
Advance your ArrayList skills with searching, sorting, and multi-method class design practice questions.

FRQ Strategies by Question Type

๐Ÿ“‹ Method Writing

When writing an ArrayList method from scratch, start by identifying the return type and parameters before writing a single line of logic. Read the problem description twice, then write pseudocode on scratch paper: what loop type do you need, what condition triggers an action, what do you return? Students who plan before coding consistently write cleaner, more complete answers and earn more rubric points than those who dive straight into Java syntax without a clear structure in mind.

After writing your method, trace through it with a small example ArrayList โ€” three or four elements is sufficient. Verify that your loop terminates correctly, that your index adjustments after remove() calls are present, and that your return statement is outside the loop if it should return only once. Examiners award points for each correct logical component, so even a partially correct method that handles the base case earns partial credit, making systematic checking extremely valuable.

๐Ÿ“‹ Code Completion

Code completion tasks are often the most approachable Unit 7 FRQ format because the surrounding structure is already provided. Read all the given code carefully before filling in any blanks. Pay attention to variable names โ€” the question uses specific names for the ArrayList, loop counter, and any helper variables, and your completion must use those exact names to work correctly. Mismatched variable names are a frequent error that makes otherwise correct logic score zero.

Focus on the blank's position within the method: is it inside the loop body, the loop header, or the return statement? Each position requires a different type of expression. A blank inside a loop body likely requires an ArrayList method call. A blank in the return statement requires an expression of the correct type. If the blank is in the loop condition, you are almost certainly filling in a boundary condition involving list.size(), so double-check your off-by-one logic carefully before finalizing your answer.

๐Ÿ“‹ Trace and Debug

Tracing an ArrayList algorithm by hand requires you to maintain a mental โ€” or written โ€” record of the list state after each operation. Create a simple table: one column for the iteration number, one for the current list contents, and one for any variables being tracked (like a running sum or a found index). This table-based approach eliminates the confusion that comes from trying to hold all state in your head and is the fastest path to the correct output when tracing loops with five or more iterations.

When debugging, look first at the most common ArrayList errors: using .length instead of .size(), using bracket notation instead of .get(), forgetting to decrement the index after remove(), and using == instead of .equals() for String comparison. These four bugs account for the majority of errors in AP CSA FRQ trace-and-debug questions. If the provided code has one of these bugs, that is almost certainly what the question is asking you to identify and correct.

Pros and Cons of Using ArrayList vs. Array for FRQ Solutions

Pros

  • ArrayList grows dynamically, so you never need to predict the final size of your data structure in advance.
  • Built-in methods like add(), remove(), and contains() reduce the amount of code you need to write for common operations.
  • ArrayList works seamlessly with enhanced for-each loops for read-only traversals, making code cleaner and shorter.
  • Wrapper class autoboxing lets you store primitive-like values (int, double) without manually converting types in most cases.
  • ArrayList's size() method always reflects the current number of elements, eliminating confusion over partially-filled arrays.
  • Using ArrayList signals to AP examiners that you understand the correct Java data structure for dynamic collections.

Cons

  • ArrayList syntax is more verbose than array syntax โ€” get(i) instead of arr[i] โ€” which increases the chance of syntax errors under time pressure.
  • Removing elements during forward traversal requires careful index adjustment, adding a common source of logic errors on FRQs.
  • ArrayLists cannot store primitive types directly, requiring Integer/Double wrappers that can cause subtle comparison bugs with ==.
  • ArrayList has slightly higher memory overhead than a plain array, which is irrelevant for the exam but may confuse students who over-optimize.
  • Some FRQ questions specifically provide an array and ask you to work with it โ€” using ArrayList instead will not earn you points in those cases.
  • Students who primarily practice with arrays may forget ArrayList-specific method names under exam time pressure.
AP CSA Arrays and ArrayLists 3
Challenge yourself with advanced ArrayList problems including nested loops, object lists, and sort algorithms.
AP CSA Inheritance and Polymorphism
Review inheritance hierarchies and polymorphism concepts that often combine with ArrayList FRQ tasks.

Unit 7 FRQ Preparation Checklist

Write a method that removes all elements matching a condition from an ArrayList using a backward loop.
Practice using add(int index, E obj) to insert elements at a specific position without overwriting existing data.
Trace a selection sort algorithm applied to an ArrayList of integers and record the state after each swap.
Write a method that searches an ArrayList of custom objects and returns the object with the highest field value.
Complete three timed FRQ practice problems under 10 minutes each to build exam-pace writing speed.
Identify and fix code that incorrectly uses == to compare String elements inside an ArrayList.
Write a method that merges two ArrayLists into a third, alternating elements from each source list.
Practice the enhanced for-each loop syntax and know when it cannot be used (modifying the list during iteration).
Review how autoboxing works when adding int literals to an ArrayList<Integer> and retrieving them with get().
Take at least two full AP CSA Unit 7 Progress Check practice sets and review every missed question thoroughly.
Index Adjustment After remove() Is Worth Points

Every AP CSA rubric for a remove-during-traversal task awards a specific point for correct index adjustment. When you call list.remove(i) inside a forward loop, you must immediately follow it with i-- (or equivalent), otherwise the element that shifted into position i will be skipped. Examiners are explicitly trained to look for this adjustment โ€” its absence costs you a dedicated rubric point even if all other logic is correct.

Common mistakes on the AP CSA Unit 7 Progress Check FRQ are well-documented by College Board examiners, and knowing them in advance gives you a significant scoring advantage. The most frequent error is the off-by-one mistake in loop boundaries. Students write i < list.size() correctly for standard traversal but then switch to i <= list.size() - 1 โ€” which is equivalent โ€” causing confusion when they accidentally write i <= list.size() and trigger an IndexOutOfBoundsException. Train yourself to use the standard form consistently and never deviate from it under pressure.

A second major mistake is calling list.remove(Object) when you intend to call list.remove(int index). For an ArrayList<Integer>, if you write list.remove(3), Java interprets the argument as an index (removing the element at position 3), not as the value 3. To remove by value, you must write list.remove(Integer.valueOf(3)). This ambiguity trips up even well-prepared students and is sometimes deliberately tested on the Progress Check to see whether students understand method overloading in the context of ArrayList.

Scope and variable shadowing errors also appear in Unit 7 FRQs. A common pattern is declaring a variable inside a loop that should have been declared outside it โ€” for example, declaring int max = 0 inside the loop body rather than before the loop begins. Each iteration resets the variable, destroying accumulated state. When writing FRQ answers, always ask yourself: does this variable need to persist across iterations? If yes, declare it before the loop. If it only needs to exist within one iteration, declare it inside. Getting this right is critical for accumulator and maximum-finding algorithms.

Returning from inside a loop is another subtle error source. If your method should return the first element matching a condition, returning inside the loop is correct. But if your method should return a count or a filtered list after examining all elements, returning inside the loop exits prematurely after the first match. Students who do not carefully read what the method should return often write this bug. Re-read the return requirement after writing your loop to verify that your return statement is in the correct scope โ€” inside the loop for early exit, after the loop for full-traversal results.

Null pointer exceptions are less common in AP CSA FRQs because the exam typically guarantees non-null lists, but you can still cause them by accessing a method on an element that might be null. More commonly, students write code that compiles but produces wrong output because they assume the ArrayList is sorted when it is not, or they assume it contains at least one element when the empty-list case must be handled.

Before writing your solution, consider: what happens if the list is empty? Does your loop execute zero times and return the correct default value? Edge cases like empty lists frequently appear in the Progress Check.

Another error pattern is forgetting to use the correct method for updating an existing element. Students who want to change the value at index i sometimes write list.add(i, newValue) instead of list.set(i, newValue). The add call inserts a new element, shifting everything after it, which corrupts the list structure. The set call replaces in place without changing the list size. Memorize the distinction: set to replace, add to insert. This one-sentence rule prevents a mistake that appears in a surprising number of student FRQ responses each year.

Finally, incomplete method signatures cost points. If the FRQ asks you to write a method with a specific return type โ€” say, ArrayList<String> โ€” and you write void or omit the return type entirely, you lose the method header point immediately. Always write the complete method signature before writing the body: access modifier, return type, method name, and parameters. Even if your logic is perfect, an incomplete or incorrect method signature signals to the grader that you do not understand the method contract, which affects your score on the relevant rubric point.

The scoring rubric for AP CSA FRQs follows a consistent structure that rewards partial credit generously โ€” if you know how points are awarded. Each FRQ is worth 9 points, and the rubric typically breaks down into a handful of discrete sub-tasks: writing correct method headers, demonstrating proper loop structure, calling the right ArrayList methods with correct arguments, handling edge cases, and returning the correct result. You do not need a perfect solution to score 7 or 8 out of 9; you need to demonstrate competency on each individual rubric criterion.

The method header point is the easiest point to secure. Writing the correct return type, method name, and parameter list exactly as specified in the problem earns you at least one rubric point before you write a single line of method logic. Many students under exam pressure skim the method signature and write something slightly off โ€” a wrong parameter name or wrong return type โ€” which costs this easy point. Always copy the method signature from the question exactly before writing the body, checking each component: public, return type, method name, parameter types, and parameter names.

Loop structure points are awarded for demonstrating that you can traverse an ArrayList correctly. The rubric looks for a loop that starts at a valid index, uses list.size() as the boundary, and terminates after processing all elements (or the first matching element, depending on the task). Getting this right earns a dedicated rubric point independent of whether your inner logic is completely correct. This is why even a partially working solution โ€” one with the right loop structure but wrong inner body โ€” scores higher than a solution that skips the loop entirely.

The algorithm logic points are the middle tier of the rubric and require the most precision. These points are awarded for correctly implementing the core operation: removing the right elements, accumulating the right values, or returning the correct result. Examiners trace your code with the examples provided in the question and check whether your output matches the expected output. Writing clean, readable code with clear variable names helps examiners follow your logic, which matters when your code is close-but-not-quite-right and the grader is deciding whether to award partial credit.

Return statement points are the final component of most FRQ rubrics. For methods that build and return a new ArrayList, you must both construct the list correctly and return it with the correct variable name. For methods that return a single value (an int, String, or boolean), you must return the correctly computed result. Methods that return nothing (void) do not have this point, but they often have a modification point instead โ€” for example, correctly modifying the instance ArrayList in place. Know which category your method falls into before you start writing.

Penalty rules in the AP CSA FRQ are important to understand. The exam does not deduct points for the same error made repeatedly โ€” if you use list.length instead of list.size() throughout your entire answer, you only lose one point total, not one point per occurrence. This policy rewards students who know their error and use it consistently rather than mixing correct and incorrect syntax randomly. It also means that if you discover a systematic error while checking your work, correcting it everywhere is worth doing even with limited time remaining.

Practice grading your own work using the scoring guidelines that College Board releases for past AP CSA exams. After writing a practice FRQ response, download the official rubric and apply it to your own solution point by point. This exercise is more valuable than re-reading notes because it forces you to confront the gap between what you intended and what you actually wrote. Students who self-grade consistently before exam day internalize the rubric criteria and naturally write more rubric-aligned answers on the actual test, which directly translates to higher scores.

Practice AP CSA ArrayList FRQ Questions Now

Building an effective study plan for the AP CSA Unit 7 Progress Check FRQ requires balancing concept review with active coding practice. A four-week plan works well for most students: spend the first week reviewing ArrayList methods and writing small isolated method examples for each one. In the second week, move to complete FRQ-style problems, writing full method bodies from scratch under light time pressure. In the third week, increase difficulty by attempting multi-part FRQs that combine ArrayList with class design or inheritance. Reserve the final week for timed full-length practice sets and error analysis.

Daily practice sessions of 30 to 45 minutes are more effective than weekend marathon sessions for developing the procedural fluency that FRQ writing requires. This is because coding is a motor-cognitive skill โ€” the more recently you have practiced writing ArrayList loops, the more automatically the syntax flows during the actual exam. Short daily sessions keep your Java syntax warm and reduce the mental load of recalling method names and loop structures under time pressure, which frees up cognitive bandwidth for solving the actual problem logic.

Use a dedicated notebook or digital document to maintain an FRQ error log. Each time you write a practice FRQ response, note every mistake you made and categorize it: syntax error, logic error, or missing edge case. Review this log before each practice session. Over four weeks, most students find that the same two or three error types recur repeatedly.

These recurring errors are your highest-priority items to fix, and recognizing the pattern is the first step to eliminating them. Students who maintain error logs improve their FRQ scores by an average of one to two rubric points per question compared to students who do not review their mistakes systematically.

Peer review is a surprisingly effective study technique for FRQ preparation. After writing a practice response, swap with a classmate and grade each other's work using the official rubric. Seeing how another student approached the same problem often reveals alternative solutions you had not considered, and explaining why a classmate's code would or would not earn a specific rubric point deepens your own understanding of the grading criteria. If you do not have a study partner, online AP CSA communities on Reddit and Discord have active FRQ discussion threads where students share and grade each other's practice work.

Video walkthroughs of FRQ solutions are valuable for understanding how expert coders think through a problem from start to finish. When watching a walkthrough, pause the video after the problem is presented and write your own solution before watching the explanation.

Comparing your approach to the expert's approach reveals whether your problem-solving process is efficient or whether you are taking longer routes that work but would be slow under time pressure. The goal is not just to get the right answer but to develop the fastest, cleanest path to the right answer given the 10 to 15 minutes per FRQ that the exam allows.

Mock exam conditions are essential in the final two weeks before your AP CSA exam. Sit in a quiet environment with no notes, set a timer for 90 minutes, and attempt a full set of four FRQs. This simulation reveals whether your individual FRQ speed translates to completing all four questions within the section time limit.

Many students who can write each FRQ correctly in isolation find that they run out of time on the actual exam because they spend too long on the first two questions. Practicing under full exam conditions calibrates your pacing and teaches you when to move on from a difficult question rather than get stuck.

The night before the AP CSA exam, do not attempt new FRQ problems. Instead, review your error log one final time, re-read your notes on the five core ArrayList methods and their exact signatures, and get a full eight hours of sleep.

Cognitive performance on coding tasks is significantly impaired by sleep deprivation, and the ability to hold loop state in working memory โ€” essential for FRQ tracing questions โ€” is particularly sensitive to fatigue. Arriving rested and confident, having completed weeks of structured practice, is the optimal state for earning the highest possible score on the AP CSA Unit 7 Progress Check FRQ section.

AP CSA Inheritance and Polymorphism 2
Deepen your understanding of polymorphism and class hierarchies with targeted AP CSA practice questions.
AP CSA Inheritance and Polymorphism 3
Master advanced inheritance concepts and apply them alongside ArrayList skills for complex FRQ scenarios.

AP CSA Questions and Answers

What topics does the AP CSA Unit 7 Progress Check FRQ cover?

The Unit 7 Progress Check FRQ covers ArrayList creation, traversal, searching, and manipulation using the five core College Board methods: add(), remove(), get(), set(), and size(). Questions assess your ability to write methods that filter, sort, accumulate, or transform ArrayList contents. Many questions combine ArrayList skills with object-oriented programming concepts from earlier units, requiring you to call methods on objects stored inside the list.

How is the AP CSA FRQ section scored?

Each FRQ is worth 9 points, and the section contains four questions for a total of 36 raw points. The FRQ section counts for 50% of your overall AP CSA score. Points are awarded for specific rubric criteria: method header correctness, loop structure, algorithm logic, and return statement accuracy. The same repeated error is only penalized once, so consistent but incorrect syntax loses fewer points than inconsistent syntax.

Can I use an array instead of ArrayList on the FRQ?

If a question specifies ArrayList, you must use ArrayList to earn full points. If the question provides an array and asks you to work with it, use array syntax. Substituting one for the other when the question specifies the type will cost you points. On open-ended tasks where the data structure is not specified, ArrayList is generally the safer choice because it avoids issues with fixed size declarations, but always follow the question's explicit requirements.

What is the most common mistake students make on Unit 7 FRQs?

The most common mistake is failing to adjust the loop index after calling remove() during a forward traversal. When you remove an element at index i, all subsequent elements shift left by one, so the element that was at i+1 is now at i. If you do not immediately decrement i after the removal, your loop skips that element entirely. AP examiners explicitly test for this adjustment, and its absence costs a dedicated rubric point.

How much time should I spend on each FRQ question during the exam?

The AP CSA FRQ section gives you 90 minutes for four questions, averaging 22 minutes per question. In practice, aim to spend about 18 minutes on each question, leaving 8 to 10 minutes at the end to review your answers. If a question is taking much longer than 20 minutes, write your best partial solution, earn whatever rubric points you can, and move on. Partial credit on all four questions typically outscores a perfect answer on two questions with two left blank.

Does the AP CSA FRQ allow pseudocode or must answers be in Java?

All FRQ answers must be written in valid Java syntax. Pseudocode, Python syntax, or English descriptions do not earn credit. The grader traces your actual Java code to determine correctness, so method calls must use the exact syntax specified in the AP Java subset. Minor formatting issues like missing indentation do not affect scoring, but missing semicolons, braces, or incorrect method names do affect whether the code is interpreted as correct by the rubric.

What is the difference between add(E obj) and add(int index, E obj)?

The single-argument add(E obj) appends the element to the end of the ArrayList, increasing the size by one. The two-argument add(int index, E obj) inserts the element at the specified index, shifting all elements at that position and beyond one position to the right, also increasing the size by one. On FRQs, using the wrong overload produces different list behavior and usually results in losing the algorithm logic points for that part of the rubric.

How do I handle an empty ArrayList in FRQ answers?

Always consider the empty-list edge case before finalizing your FRQ answer. For a method that returns the maximum element, an empty list means there is no maximum โ€” you might return Integer.MIN_VALUE, -1, or null depending on the return type. For a method that removes elements, an empty list means the loop body executes zero times and the method does nothing โ€” which is correct behavior. Verify that your loop condition handles size() == 0 without throwing exceptions or returning incorrect values.

Should I use a for-each loop or an index-based for loop in FRQs?

Use a for-each loop when you only need to read elements and do not modify the list during traversal โ€” it produces cleaner, shorter code that is less prone to boundary errors. Use an index-based for loop whenever you need to remove elements, insert elements at a specific position, compare adjacent elements, or track the current index for any reason. When in doubt, the index-based for loop is always safe because it handles all traversal scenarios, whereas the for-each loop has specific limitations.

How can practice tests help me prepare for the AP CSA Unit 7 Progress Check FRQ?

Practice tests build the automaticity needed to write correct ArrayList code quickly under exam time pressure. Each practice attempt reveals specific gaps in your understanding โ€” wrong method names, missing index adjustments, or incorrect return types โ€” that you can then target with focused review. Taking practice tests under timed conditions also calibrates your pacing so you know exactly how much time to budget per question on exam day, reducing anxiety and improving performance on the actual AP CSA exam.
โ–ถ Start Quiz