Rubric
Assessment evaluation rubric.
Assessments are evaluated on four dimensions.
Behavior
Does the input and output functionality of the submission conform to the specification?
- Exemplary
- Exhibits correct behavior in all cases, including edge, corner, and error cases
- Satisfactory
- Exhibits correct behavior in all common cases
- Throws expected exceptions in all cases
- Not yet
- Exhibits incorrect behavior in some common cases
- Lacks some required functionality
- Does not throw expected exceptions in some cases
- Lacks some required functionality
- Unassessable
- Behavior does not resemble specification
- Lacks significant portions of required functionality
Abstraction and Design
Are data structures, methods, and classes chosen, designed, and implemented according to best practices?
- Exemplary
- Classes contain no redundant constructors
- All methods are clear and concise and include no extraneous parameters
- All methods include a proper access modifier
- Classes contain only the most essential fields and all fields are initialized appropriately
- All constants are declared correctly and used in all appropriate places
- Most appropriate type, including interface types, used in all expected places
- All methods are clear and concise and include no extraneous parameters
- Satisfactory
- No redundancy exists between methods
- All methods are clear and concise
- Classes contain no extraneous constructors
- Classes contain reasonable fields
- All constants are declared correctly
- Reasonable types used in all places
- All public methods are specified public
- All methods are clear and concise
- Not yet
- Redundancy exists between methods
- Some methods are overly long or complex
- Classes contain redundant or extraneous constructors or public methods
- Classes contain extraneous or unnecessary fields
- Constants are declared incorrectly
- Unreasonable or inappropriate types used in some places
- Some methods are overly long or complex
- Unassessable
- Not enough code present to evaluate effectively
- Required methods or constructors missing
- No fields present
- Required methods or constructors missing
Use of Concepts
Are all language features and course concepts used appropriately, effectively, and efficiently?
- Exemplary
- Most appropriate variant of all control flow constructs used and properly factored and simplified
- Recursive methods contain no extraneous cases or calls
- No expensive operations are unnecessarily recomputed
- Most appropriate data structure used in all cases
- All assignment-specific requirements met
- Recursive methods contain no extraneous cases or calls
- Satisfactory
- Appropriate control flow constructs used
- Recursive methods contain extraneous cases or calls
- Does not create any unnecessary objects
- Appropriate data structure used in all cases
- Key assignment-specific requirements met
- Recursive methods contain extraneous cases or calls
- Not yet
- Inappropriate control flow constructs used
- Recursive methods contain redundant cases or calls
- Creates unnecessary objects
- Inappropriate data structure used in some cases
- Some assignment-specific requirements not met
- Recursive methods contain redundant cases or calls
- Unassessable
- Not enough code present to evaluate effectively
- Required language features or concepts not used
- Banned or inappropriate language features or concepts used
- Required language features or concepts not used
Documentation and Readability
Is the code well-written and well-documented, and does it conform to all code quality and other related guidelines?
- Exemplary
- Header comments on all classes and methods are well-written and contain all relevant information
- All identifiers are meaningful and follow prescribed naming conventions
- All code is indented and spaced consistently and cleanly
- No lines longer than 100 characters
- Code has no “magic numbers”
- Exceptions thrown as soon as possible
- Personal style choices are consistent and reasonable
- All identifiers are meaningful and follow prescribed naming conventions
- Satisfactory
- Header comments present on all classes and methods
- Some identifier names are not meaningful or fail to follow prescribed conventions
- No complete blocks are indented or spaced incorrectly
- Some lines longer than 100 characters
- Some identifier names are not meaningful or fail to follow prescribed conventions
- Not yet
- Header comments missing on some classes and/or methods
- Entire code blocks are indented or spaced incorrectly
- Unassessable
- Not enough code present to evaluate effectively
- Code shows little or no effort follow code quality guidelines
- Code is extremely difficult to read and understand
- Code shows little or no effort follow code quality guidelines