The following are just guidelines for program graders.
Individual programs from individual students can overlap
categories.
Just use your best judgment in applying these guidelines.
These guidelines
are also made available to students taking the course.
If the assignment is missing the required output the student can hand in the entire program again, this time with output, with no late penalty.
The assignments are written in multiple
parts. If a student completes some of the parts correctly
but other parts are incomplete, they will get full credit for
the parts that are working and partial credit for the incomplete
parts. As an incentive to get students to hand assignments
in on time (even if they are not perfect), they are permitted to
hand in an incomplete assignment on time, and then later turn in
a more complete assignment. The late assignment will be
receive a late penalty, but the higher of the 2 scores will be
recorded.
Basic grading:
100%
|
Runs correctly, generating
correct outputs for the
required inputs.
|
90%
|
Runs basically correctly with
some minor deviations
from the requirements.
|
80%
|
Runs but has less than full
functionality
|
70%
|
Runs but is quite far from having
the required functionality or functionality not
demonstrated through use of required inputs.
|
60%
|
Runs and seems to be addressing
the problem, but hard to tell what it does.
|
50%
|
Does not run but seems to be a
good try. (This may be due to having no output
handed in.)
|
40%
|
Doesn’t run but program seems to
be addressing the
correct problem
|
10 – 30%
|
Anything handed in. No one
should get a 0
on work handed in. Zeros are reserved for
handing nothing in.
|
Extra Credit |
Extra Credit is required to be
nearly or fully correct. Although the regular
parts of an assignment are given partial credit, the
extra credit needs to be nearly or fully correct to
receive credit. |
These are not fixed amounts. They are simply guidelines for the grader.
-20%
|
No commenting. Take less than
20% off if there
is a little commenting but not adequate.
|
-20%
|
Poor pretty printing.
Indentation not consistent. Take less than 20% off if it
seems not too bad.
|
-20%
|
Extremely poor identifier
names. Peoples’
names (e.g. Sarah) or identifiers like yg17.
Less than 20% off for less poor identifier names. |
Again, round to the nearest tenth.
Deducting points and half points. In many cases it may be easier just to deduct a point or half a point instead of using a percentage. Also, if the commenting is poor but not completely missing, fewer points could be taken off. If this grading method is used consistently for any particular programming assignment, it is within the guidelines.
Inappropriate programming method. For example, if a student repeats a set of instructions a number of times instead of having a loop it implies that the student does not understand loops. Using the else … if form instead of a switch is ok unless the switch was explicitly called for in the assignment. These will be up to your judgment. About 30% off for a major misuse would be appropriate.
Cheating. If 2 students hand in identical or nearly identical programs, give each student a 0 on the program and let the instructor know. The instructor will deal with the problem. Often the code for the first programs in COS 160 will be very close because there are not many options. Still, indentation, comments, variable names, etc are unlikely to be identical or nearly identical.
Grading effort. It is assumed that the output of each program will be checked and graded. The program itself should also be checked for pretty printing, commenting, variable names and overall structure. This does not necessarily imply a detailed reading of the program.
Grader comments. These can be very helpful to the student and to you if the student comes back with questions. Give hints on how it could be improved. Do not necessarily read the program in detail but if something jumps out at you and, especially, if you take points off for it, comment on it. Comments should be legible.