Programming Rubric for ICS 111

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.

ICS 111 Programming Rubric

CriterionExcellent (3)Adequate (2)Substandard (1)Not Even Close (0)
Adherence to standards
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. Misses the point of the assignment.
Breakdown (modular design)
Does it demonstrate good modular design?
No errors. 1-3 minor errors. > 3 minor errors OR 1 major error. > 1 major error.
Correctness of code
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. No.
Documentation, and style
Is it clear and maintainable? Does it pass CheckStyle?
No errors. 1-3 minor errors. > 3 minor errors OR 1 major error. > 1 major error.