MS2: Code Quality, Documentation, and Testing Rubric

Code Quality [6 points]

Spot check: Select two .ml files at random, excluding test files. From each file, read about 100 lines starting from a random location in the file. Evaluate those 200 total lines against the following rubric.* Apply each deduction at most once.

* Evaluating a 1500 line codebase would be beyond the time commitment that graders can provide. Instead, graders are spot-checking: randomly sampling a part of your code that is similar in size to earlier programming assignments, and assessing just that part in detail. So, you need to make sure that all parts of the codebase are in good shape, because you can’t predict what will be sampled.

Documentation [4 points]

Run make docs and examine the resulting HTML. If the team provided both public and private documentation, read only the public. Exclude any test modules.

* May be applied multiple times. If just one function in a module is missing a spec, let it slide.

Test Plan [4 points]

The test plan should be located in a comment at the top of the test file.

Test Suite [6 points]

The test suite should be runnable with make test.

* On A2 this semester, the course staff test suite contained 52 tests. That was the smallest test suite out of all the assignments. Students wrote a median of 200 LoC (including tests) to solve the assignment. For a project in which 500 LoC/person is expected, 50 passing tests therefore is a minimal amount. In reality we should probably be asking for more.