| Behavior |  Correctly implements all required functionalityExhibits correct behavior in all cases |  Attempts to implement all required functionalityExhibits correct behavior in all common cases |  Attempts to implement most required functionalityExhibits correct behavior in most common cases | 
  | Concepts |  Most appropriate variant of language features used in all circumstancesMost appropriate type and/or data structure used for all data (e.g. variables, parameters, fields)All data created and used in the most local scope possibleAll code is appropriately factored to eliminate unnecessary redundancy and/or computationNo extraneous or unnecessary code or constructs (e.g. methods, parameters, conditional cases)All assignment-specific implementation requirements met |  Reasonable variant of language features used in all circumstancesReasonable type and/or data structure used for all data (e.g. variables, parameters, fields)All data created and used in local scopeNo obviously unnecessary redundancy or computationNo obviously extraneous or unnecessary code or constructs (e.g. methods, parameters, conditional cases)All key assignment-specific implementation requirements met |  Some reasonable language features usedSome reasonable types and/or data structures usedAll data created and used in local scopeSome unnecessary redundancy or computation eliminatedSome extraneous or unnecessary code or constructs eliminatedMost key assignment-specific implementation requirements met | 
  | Quality |  Header and class comments are present on all classes and methodsAll header comments are concise and meaningful, and include all relevant information and no inappropriate informationAll identifiers are descriptive and meaningful, and follow naming conventionsNames, comments, and line lengths make code more readable and maintainableAll code is indented and spaced consistently and cleanlyCode follows all guidelines from code quality guidePersonal style choices are reasonable and consistent |  Header and class comments present on most classes and methodsAll present header comments are concise and meaningful, and include all relevant informationMost identifiers are meaningful and follow naming conventionsNames, comments, and line lengths do not significantly reduce readability or maintainabilityIndentation and spacing do not significantly reduce readability or maintainabilityCode follows all major guidelines from code quality guidePersonal style choices are reasonable |  Header and class comments present on some classes and/or methodsSome header comments are concise and meaningful, and include most relevant informationSome identifiers are meaningful and/or follow naming conventionsSome attempt made at appropriate naming, line lengths, Indentation and spacingSome code follows guidelines from code quality guide | 
  | Reflection |  All reflection questions answered and demonstrate meaningful effort |  Some reflection questions answered and demonstate meaningful effort. |  No reflection questions answered and demosntrate meaningful effort. |