CMSC 341 - Project Grading

Grading Policy

Projects will be graded on four criteria: correctness, design, efficiency, and conformity. A program that simply "works" might be correct, but will not receive a score of 100% unless it also has good design, is efficient and adheres to coding standards. Here are some general guidelines for each criterion.

  • Correctness: To receive a good score for correctness, you must implement all of the required features of the project as stated in the project description. Your program must also run without error on all inputs —, including inputs that were not provided in the project description and inputs that you did not try. Your program must not leak memory.
  • Design: A good score on design depends on how well you have chosen several aspects of your program, including (but not limited to): object-oriented design and top-down design. For example, for a project where you define the classes, you will be graded on your choice of member functions and data members.
  • Efficiency: your implementation of the project must have running times that conform to the project specifications. A slow function that produces the specified output is not a good implementation and will receive a poor score. We will run your project with large data sets. An efficient implementation runs in a matter of milliseconds.
  • Conformity: (such a nasty word!) your code must follow the class coding standards in spirit. These coding standards have been rewritten to focus on intent rather than rigid guidelines. You must have adequate documentation. If you turn in ugly, unreadable code, there will be deductions.

The weight given to these criteria may differ from project to project.


Grading Rubric

The following presents a general project rubric. It shows how a submitted project might lose points.

  • Conforming to coding standards make about 10% of the grade.
  • Your test program is worth 50%. If you submit the sample driver program as your test program or no test program is submitted there will be 50% deduction.
  • Correctness and completeness of your test cases (mytest.cpp) make about 15% of the grade.
  • We have written test cases to test your submission without knowing anything about your code. Therefore, it is extremely important that your submission conforms to the specified requirements. Passing tests make about 30% of the grade.
  • There is a 5% deduction for every modification that we need to perform to compile and run your work. For example, if we need to rename your file from myTest.cpp to mytest.cpp the deduction will be applied. One can find a non-exhaustive list of problems that cause deductions at the submission page.

Non-Working Projects

If you are unable to complete a project, it is usually worth submitting whatever work you have done. Partial credit may be granted for projects that do not compile or execute. In these cases, the grader will estimate the amount of additional work that would be required to complete the project and assign a score.


Project Grade Changes

For quality control purposes and in order to ensure the grading process is a fair process to all students we will re-check some submissions throughout the semester. This might result in increasing or decreasing a grade. For example, we might detect the use of AI generated code by the end of semester in an early submission; this will result in deductions or even treating the submission as an Academic Integrity Violation case. Please check the possible outcomes of an Academic Integrity Violation at Academic Conduct Policy.


Project Grade Disputes

If you believe there is an error in the grading of your project, please contact one of the TAs in person during their office hours. Do not ask about regrades by email. You must make your regrade request within seven days of the receipt of your project grade. Please check your program on GL using any provided test cases before requesting a grade change.

Examples of valid grade change requests:

  • Addition error in the computation of your score.
  • The grade sheet says a file was not submitted, but it actually was.
  • The grader forgot to run a test case and deducted points.

Examples of invalid grade change requests:

  • You think 10 points is too much to take off for a particular mistake. (The answer will be: “We took off 10 points from every student who made this mistake. It will be unfair to change your score.”)
  • Your program runs on your own PC/Mac, you think something is wrong with g++ on GL. (You have to test your program with g++ on GL.)
  • Your program works when you run it on your own test cases, but not on the test cases used for grading. (Thorough testing is the programmer's responsibility. You should have found those bugs yourself with robust test cases.)

Your instructor is the final arbiter for your project grade. If you have spoken with a TA and are not satisfied with their response, see your instructor.