Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Most homework problems will ask you to develop a program that solves a particular problem. Roughly speaking, the overall grade that you get for such a problem will be:

  • 25% on Correctness. Does the program pass all of our unit tests? If your program is correct, you will get all of these points. If not, you may get partial credit depending on how many of our unit tests your program passes. If you make a serious mistake, you will probably receive zero correctness points.
  • 25% on Testing. Does your program include a representative set of tests for each non-trivial program function, including non-trivial auxiliary functions? If so, you will full credit for testing. You need at least five tests for each function, including the base cases, examples of each form of inducive data contruction, and other inputs to make sure all of the legal edges in the program flow graph are covered.
  • 25% on Design and Documentation. Is the overall design clean and intelligible? Is all of the requisite design and coding documentation present? This includes data definitions, templates, template instantiations, contracts, and purpose statements. The examples and tests for each function are already covered as part of testing.
  • 25% on Program Style. Is your coding and presentation clean and easy-to-understand? This task primarily involves carefully follow the the design
  • 40% on following the process and the documentation guidelines described by the design recipe. This includes elements like data definitions, templates, contract, purpose, examples, and tests.
  • 20% on code style. By style we primarily mean that your code follows closely what is dictated by the recipe. But style also includes presentation (correct indentation, choosing good names for variables) and good low-level design choices (using reasonable auxiliary functions, avoiding code duplication, defining helpful constants).40% on correctness. If your program is correct, you will get all of these points. If not, you may get partial credit depending on how many of our unit tests your program passes. If you make a serious mistake, you will probably receive zero correctness points.

If your program returns an incorrect answer, please note this in your comments. (Do not elide that test case from your homework, and hope we don't notice!) It is better to state what bugs your function has, than to claim the code is correct when it's not; we will grade accordingly.

...