Criteria | Category | Explanation |
---|---|---|
Output Issues |
Correctness |
The program solves the correct problem. The program solves the problem correctly. |
Completeness |
All assignment requirements are met. | |
Testing |
Effective test data chosen. | |
Design Issues |
Understandability |
Comment for each major algorithm step. Comments following each variable/object declaration (unless variable name makes it clear). Meaningful variable names Effective use of white space and indentation Prompts for input Headings/Labels for output Comment before each method/class describing its role |
Coherency |
Good utilization of the Java programming language No global variables Logic of your code follows the algorithm English explanation = what the code does Relationships between the data elements are inherently represented in the code No unnecessary work done or excessively convoluted logic |
|
Modularity |
Each method does one task Methods reflect the behavior of the object Complex tasks are effectively delegated to other objects Good use of encapsulation |
|
Reusability |
Class is general enough to be usable elsewhere No unnecessary duplication of code Good use of Java interfaces and/or generics |
|
Robustness |
Good error-checking Data structure is protected against accidental or deliberate misuse |
|
Efficiency |
Time and space-intensive operations have been identified Correct abstract data type (ADT) is used to decrease running time for frequently-used operations |