Scoring Guidelines
Learn how to avoid penalties when answering a free-response question.
We'll cover the following
Scoring criteria
Apply the question scoring criteria first, which always takes precedence. Penalty points can only be deducted in a part of the question that has earned credit via the question rubric. No part of a question (a, b, c) may have a negative point total. A given penalty can be assessed only once for a question, even if it occurs multiple times or in multiple parts of that question. A maximum of penalty points may be assessed per question.
1-point penalty
- Array/collection access confusion (
[] get
) - Extraneous code that causes side-effect (e.g., printing to output, incorrect precondition check)
- Local variables used but none declared
- Destruction of persistent data (e.g., changing value referenced by parameter)
- Void method or constructor that returns a value
No penalty
- Extraneous code with no side-effect (e.g., valid precondition check, no-op)
- Spelling/case discrepancies where there is no ambiguity*
- Local variable not declared provided other variables are declared in some part
private
orpublic
qualifier on a local variable- Missing
public
qualifier on a class or constructor header - Keyword used as an identifier
- Common mathematical symbols used for operators (× • ÷ < > <> ≠)
[]
versus()
versus<>
=
instead of==
and vice versa- The length/size confusion for array,
String
,List
, orArrayList
; with or without( )
- Extraneous
[]
when referencing an entire array [i,j]
instead of[i][j]
- Extraneous size in array declaration, e.g.,
int[size] nums = new int[size];
- Missing
;
where structure clearly conveys the intent - Missing
{ }
where indentation clearly conveys the intent - Missing
( )
on parameter-less method or constructor invocations - Missing
( )
around if or while conditions
đź“Ś Note: Spelling and case discrepancies for identifiers fall under the No penalty category only if the correction can be unambiguously inferred from the context, for example,
ArayList
instead ofArrayList
.As a counterexample, note that if the code declares
int G = 99, g = 0;
, then useswhile (G < 10)
instead ofwhile (g < 10)
, the context does not allow for the reader to assume the use of the lower case variable.
Get hands-on with 1400+ tech skills courses.