Modified from https://www.svcc.edu/~megillk/programming_rubric.htm.
For each of the Home work assignments we will grade you based upon the ABCs of our programming rubric. The percentage assigned to each row may change based upon the home work assignment.
Where the specifications for a program are clearly stated, you must adhere to them in every detail. Where the specifications are not clearly stated, you must make ‘good’ decisions about how the program should behave. A ‘good’ decision is practical and satisfies the underlying intent of the program. Where there is any possibility of misunderstanding, you must document your decisions.
Programs should use good modular design. In object-oriented programming modular design impacts choices about objects, their public interfaces, and whether or not they are inherited.
Programs must work correctly. They should pass all the provided JUnit tests.
Remember that the input may:
Programs sometimes fail to work for trivial reasons and sometimes because of a critical misunderstanding of the basic logic for the program.
Programs should be stylistically sound and well-documented. We are using Checkstyle to enforce our Java Coding Style. This affects things like commenting, names of identifiers, and logical structure.
Programs should use the right tool for the right job. This means programmers must make good decisions about the algorithms and language features to use.
Criterion | Excellent (100%) | Satisfactory (75%) | Borderline (50%) | Unsatisfactory (25%) | Poor (0) |
---|---|---|---|---|---|
Adherence to standards - 2 points Does it conform to standards in every detail? |
No errors. | Minor details of the assignment are violated, or poor choices are made where the assignment is unclear. | Significant details of the assignment or the underlying program intent are violated, but the program still fulfills essential functions. | Significant details of the assignment or the underlying program intent are violated, but the program still fulfills some essential functions. | Misses the point of the assignment. |
Breakdown (modular design) - 1 point Does it demonstrate good modular design? |
No errors. | 1-3 minor errors. | > 3 minor errors OR 1 major error. | 2 major errors | > 2 major error. |
Correctness of code - 4 points Does it work? Does it pass JUnit? |
Passes all tests. | Works for typical input, may fail for minor special cases. | Fails for typical input, for a minor reason. | Fails for typical input, for a major reason. | No. |
Documentation, and style - 2 points Is it clear and maintainable? Does it pass CheckStyle? |
No errors. | 1-3 minor errors. | > 3 minor errors OR 1 major error. | 2 major errors | > 2 major error. |
Efficiency of code - 1 point Does it use the Java features well? |
No errors. | 1-3 minor errors. | > 3 minor errors OR 1 major error. | 2 major errors | > 2 major error. |