Assignment Grading Policy

Each programming assignment will be graded on: correctness, design and implementation, reusability, efficiency, and adherance to the coding standards.

Once your project is complete, you should put all files into a single directory, then create a zip archive of the directory, and submit the zip archive on Moodle. Make sure to keep a copy of the submitted zip file. This will solidify time and date of your files and may be critical in resolving some unusual grading situations.  The course late policy, as described on the syllabus, applies to all assignments.


Correctness - 40%

Correctness includes the following aspects of your project:
  1. Your project must produce the correct output.
    When tested with valid input, your project must produce the results specified in the project description. The output must conform to the format specified in the project description.
    When tested with invalid input, your project must handle the error(s) in the manner specified in the project description.
  2. Your project must meet all project specific requirements.
    Project descriptions may contain requirements regarding class methods, input values or formats, how data must be stored, etc. Your project must satisfy all such requirements.
  3. Your project may not violate any project specific restrictions.
    Project descriptions may contain restrictions regarding variable definitions, method signatures, etc. Your project may not violate any of these restrictions.
A project which does not compile will receive no points for correctness.


Design and implementation - 30%

To be successful in this course, your projects must be properly designed and implemented in addition to producing the correct result. An excellent program exhibits proper object-oriented design including encapsulation, code reuse and other OOP topics discussed in class.  All implementations should exhibit appropriate top-down design.

An excellent program exhibits clear, straight-forward logic in its algorithms. An excellent program DOES NOT contain code that overuses control structures or has convoluted logic.

Your grade for this section will be

  1. 31 - 40%
    The instructor may assign extra credit for a design and implementation that exceeds the standard expectations. The design and implementation must show additional work beyond the requirements or must use especially elegant or advanced methodologies.
  2. 30%
    A design and implementation that meets all design and implementation expectations but may have 1 - 2 minor problems
  3. 20 - 29%
    A design and implemenation that has several small problems and/or falls slightly short of the best approach
  4. 10 - 19%
    A design and implementation that has serious problems and/or falls significantly short of the best approach
  5. 1 - 9%
    A design and implementation with extremely serious problems, but nonetheless shows some effort and understanding of OOP and top-down principles.
  6. 0 points
    A design and implementation shows no effort to follow OOP and top-down principles.


Reusability - 10%

The code could be reused as a whole and/or each routine/method could be reused.

Efficiency - 10%

  1. 10 points
    Program is very efficient and does not sacrifice readability and/or ease of understanding.
  2. 5 points
    The program is very efficient, but sacrifices readability and/or ease of understanding. Or program has a better than brute force method, but not the most efficient method.
  3. 0 points
    The code is wasteful with space and time using extra loops or data structures.

Adherance to Coding Standards - 10%

It is your responsibility to read, understand, and follow the course coding standards.  Your grade for this section will depend on how well you followed the coding standards.



Grading Questions

If you have a question regarding your project grade, you have exactly one week from the receipt of your grade to speak to your instructor in person.


Project Regrades

In some unusual circumstances you may receive a low project score because of a single, simple error that results in many incorrect outputs or results in a compiler error. The definition of "simple error" is determined by your instructor. In such cases, your instructor may (at his discretion) allow you to fix the simple mistake and have your project regraded.

A 10% deduction is assessed when your project is regraded.