Programming Rubric for ICS 211

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.

A: Adherence to standards

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.

B: Breakdown (modular design)

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.

C: Correctness of code

Programs must work correctly. They should pass all the provided JUnit tests.

Remember that the input may:

  1. be completely typical for the program OR
  2. represent a significant special case that the program must deal with OR
  3. represent a mostly insignificant special case OR
  4. have errors in it

Programs sometimes fail to work for trivial reasons and sometimes because of a critical misunderstanding of the basic logic for the program.

D: Documentation, and style

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.

E: Efficiency of code

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.

ICS 211 Rubric

CriterionExcellent (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.