for the AP Computer Science Exam in Java
Can Students Use Any Class in Java API?
Teachers and students often ask whether an AP exam taker can use
any class or method from Java API, including new Java 8 features,
in their solutions to the free-response questions.
The following advice has been offered in the ap-compsci forum by professor
James K. Huggins
(reprinted with permission):
RE: Can students use any Java class?
[Standard disclaimers apply: I'm speaking based on my experiences as a veteran reader,
but I don't speak on behalf of ETS, College Board, the Development Committee, or Nate Silver.]
Short answer: yes, students can use any valid Java code... but it's risky.
In general, the rule is that if the solution is a valid Java solution, it's eligible for full credit.
However, let me qualify that answer in a few important ways.
So, what do you tell your students?
- Above all else, the rules outlined in the question take precedence.
If the question explicitly says not to use something, or (more likely)
that the solution must use some other call, then not following those rules
will almost certainly result in failing to earn full credit.
- Keep in mind that the only API reference that students have during the exam
is the one-page Quick Reference, which has the selected methods from the selected
classes identified as part of the AP Java subset.
If students want to use other classes, they'll have to remember the structure
of the calls from memory.
If they get those calls wrong, it'll certainly lead to failing to earn full credit.
- FRQs are scored by human readers.
Now, these readers are wonderful people; it's my honor to be associated with them.
But no-one has the entire Java API memorized.
If a student uses a class from outside the AP subset, there's an extremely small (but non-zero)
chance that the reader who scores that exam might not be familiar with it,
and incorrectly judge those parts of the code as incorrect, failing to grant credit.
We go to great lengths to try to ensure that this doesn't happen; the leadership
will dig into the APIs for those unusual solutions so that every student gets a fair assessment.
But we're only human, and I'm sure that stuff gets missed.
It's much safer to stay within the subset.
- To everyone: tell them that the questions are designed to be solved within the boundaries of the AP subset.
There's no "need" to bring in outside features.
- To the fearful students: if they don't see the "in-bounds" solution, tell them to
absolutely write the "out-of-bounds" solution.
It'll usually work out.
- To the "showoff" students: the AP exam isn't the time to use twelve different obscure
features of Java in an attempt to show off, or to demonstrate that they know more than the reader.
Because if they show they know more than the reader ... they lose with a lower score.