University of Arizona, Department of Computer Science

CSc 453: Grading Policies and Procedure

Weights and Distribution Grades will be based on the midterm exam (weight: 20%), the final exam (weight: 30%), and a semester-long programming project (total weight: 50%). The weighting of the individual assignments that make up the project is given here.

Your grade will be determined by the overall weighted average of your scores on exams and programming assignments based on the following mapping:

Weighted AverageGrade
> 90 A
80 – 90 B
65 – 80 C
55 – 65 D
< 55 E
Timeliness Assignments
Assignments are due at the time stated in the assignment handout. Late submissions are permitted, but will be assessed a late penalty of 10 points per day.

You may turn in multiple submissions for the same assignment: they will be graded separately, and you will be awarded the maximum of their scores (after adjusting for late penalties where appropriate). However, note that I will generally check the turned in assignments once a day, so a submission that comes soon after a previous one may overwrite the previous one. In this case, it will be possible to grade only the later submission.

In general, an assignment will be graded by comparing its output against the "expected output" on a number of different test inputs using the diff utility: if your output differs from the expected output, it will be considered to have failed that test (it is for this reason that strict adherence to the specification is important).

Exams
Without prior arrangements, missed exams result in a grade of zero. If you will be absent on the date of an exam due to religious reasons or because of a pre-approved absence by the UA Dean of Students, please contact me ahead of time so that we can work out an alternative time for your exam.

Illness and Emergencies
I may adjust these rules to accommodate students with documented emergencies or illness. In such situations, you should petition me in writing, with the appropriate documentation, at the earliest opportunity possible.

Grading Procedure The size of the programs involved in the project makes it impractical to manually examine your source code to determine its correctness. Instead, we will use the following procedure:

  • You will develop and test your code using your own test cases. It is permissible for students to share test cases.

  • I will make my test cases public after the submission deadline.

  • Your code will be graded on my test cases using a grading script. You will be awarded a preliminary score based on the number of test cases failed. This preliminary score will be sent to you by email.

  • If you were penalized more than once for the same problem, you will have the option of bringing this to my attention over the two weeks following notofication of your preliminary score. Specifically, you will need to provide me with:

    • a list of the specific problems in your code; and
    • for each problem, the test cases that failed as a result.

    You can do this either via email or in person.

  • Based on this, I may adjust your preliminary score where appropriate, based on my assessment of the seriousness of the problems. However, any such adjustment will always be positive, i.e., you will not be penalized—but may be rewarded—for explaining the problems in your code.