Grading Standards for CSE 12
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.
If you update a file, you must provide a file header.
If you update a method, you must provide a method header.
If you update a class (including providing code for any of
its methods), you must provide a class 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 (method, 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".