AP CSA 4.3 FRQ Practice: Index Boundaries

Unit 4: Data Collections · Lesson 4.3 · FRQ Practice

Index Boundaries

A free response question in the shape the exam uses: a stated contract, four rubric parts, and no main method handed to you. Worth 4 points.

Why this question is worth four points

Valid indexes run from 0 to length - 1. Everything in this topic follows from that one sentence, and every bug in it is a place where length was used as if it were an index.

What you are given

The driver builds an int array and passes it to your methods. Every array has at least one element. Write a class named Access. Do not write a main method.

The question

  1. (a) public static int first(int[] data) returns the first element.
  2. (b) public static int last(int[] data) returns the last element.
  3. (c) public static boolean isValid(int[] data, int index) returns whether index is a usable index for data.
  4. (d) public static int at(int[] data, int index) returns the element at index, or -1 when the index is not usable.

What the reader is looking for

  1. Write class Access with the four static methods described. No main method.
  2. A negative index is not usable either. Part (c) has to rule out both ends.
  3. Part (d) must not throw. Check with part (c) before reaching into the array.

Worked examples

These show what a correct answer prints. There are more cases you cannot see, and they use different values, so an answer built around just these numbers will fail.

Example 1 input
4
11 22 33 44
2
Example 1 output
11
44
true
33
Example 2 input
3
5 6 7
3
Example 2 output
5
7
false
-1

Your answer

Main.java

Input for the Run button

How this is scored: your answer runs against every test case, and the fraction it passes becomes your score out of 4. That is not how a human AP reader marks a rubric, so treat the score as a check on whether your code works, and the rubric above as the thing you are actually practising.


  

  

Stuck?

Hint 1

data[data.length] is always out of bounds. The last element is at data.length - 1.

Hint 2

Part (c) needs both halves. index < data.length alone accepts -1, which throws the moment part (d) uses it.

Hint 3

The driver probes with an index that is sometimes valid and sometimes not, so both answers from part (d) are checked.

Before you submit

4 mistake(s) that lose points on this question

Each of these is a real error the grader catches. Check your answer against them before you submit, not instead of trying.

  • part (b) indexes at length rather than length - 1
  • part (c) forgets that a negative index is invalid
  • part (c) accepts an index equal to the length
  • part (d) returns 0 rather than -1 for an unusable index

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]