Grading Standards for CSE 12

Assignment Specifics (Correctness):

  • Does the text of your code exceed 80 characters? Although terminals often expand beyond 80 characters, still many printers do not.
  • Did you follow the assignment? Does your program functionality comply with the program functionality required by the assignment?
  • Does your code compile and run error-free AND warning-free? The grader should be able to type "make" (once Makefiles are introduced in class as part of the assignments) and get no compiler errors or warnings. Remember, a warning is an error waiting to happen. If you are unable to complete your program, comment out those lines which will cause compilation to fail. Those programs which do not compile AT ALL when tested by the grader will receive a score of zero.
  • Does your program correctly do its task for any and all test cases?
  • Does your program complete the task using the tools which are required (or allowed)? For example, hw1 asks you to write some routines which will allow strings to be read in from the keyboard and written out to the screen. It would not be within the scope of the assignment to use such pre-defined functions as scanf and printf. Though such a program would work, it would not be considered correct because you didn't do what the assignment said to do. Such programs will receive diminished grades for correctness.
  • Remember, in some cases, there will be really only one correct approach to a program for you to take. That doesn't mean that you're completely constrained in what you can do or that you can't demonstrate some ingenuity, just that you need to follow a certain APPROACH. However, your approach to the program will be one of the factors in your program grade.
  • General (Non-Assignment Specific) Standards (Style and Comments):

  • If you update a file, you must provide a file header.
  • If you update a function, you must provide a function header.
  • If you update a class/struct (including providing code for any of its methods), you must provide a class/struct header.
  • You do not have to provide documentation for provided code unless specifically required by the assignment.
  • Does your code include useful and thorough comments? Each functional block (function, object definition, class definition, etc.) should contain a header block, an example of which is contained in the file style.
  • Additionally, inline comments should be incorporated for use as a guide to the reader. Whether that reader is you or me, it is helpful to track thought processes and explain where the code's going and why you do what you do.
  • Your code should be somewhat readable. This doesn't require a lot of time or effort and I don't require a "beautiful" document, just something which is spaced out and indented enough to allow for easy reading (and grading).
  • Some modicum of optimization is an important factor in your program. Don't do in 100 lines what you can do in 10 just (or almost) as easily. At the same time, you are not required to optimize every single line and you won't be docked for such small things. Consider your program at an object level and consider the most efficient way for your objects to interact and, to a degree, for each to do their job.
  • There is a statute of limitations on re-grade requests of one week after receiving your graded assignment or midterm.
  • The above is merely a general guideline for the assessment of your programs and it would benefit you greatly to ensure that your program follows these guidelines. The weight which will be attributed to each "guideline" will vary from program to program. As the number of concepts increase, the amount of emphasis placed on "style" will diminish with respect to the amount placed on "correctness" and "concept demonstration".