Grading

We will be using a form of grading known as specifcations grading in this course. The goal of specifcations grading is to help students focus on their mastery of the material and identify areas for improvement as the quarter progresses. Shorthand: focus on skills, not on scores

Since many of you have likely not encountered specifications grading before, so we encourage you to carefully read this page to make sure you understand how it works.

Short Exercises and Programming Assignments

Short Exercises and Programming Assignments will be evaluated using an ESNU scale:

  • Exemplary (E): The work is either perfect, or has only very minor flaws.

  • Satisfactory (S): While the work has some room for improvement, the student has put in a good-faith effort to complete all the work and demonstrated sufficient mastery of the material. Only minor revisions would be needed for the work to be Exemplary.

  • Needs Improvement (N): The student has put in a good-faith effort to complete the work, but revealed a lack of mastery in the material that can be addressed via concrete feedback. The work could become Satisfactory or Exemplary with some major revisions.

  • Unsatisfactory (U): The student did not submit any work, or did not complete a sufficient portion of the work (e.g., completed less than half the work that was assigned).

There will be 7 ESNU scores for the Short Exercises. Every Short Exercise will have an ESNU score assigned for completeness. There will be 12 ESNU scores for the Programming Assignments. Every Programming Assignment will have two ESNU scores, one assigned for completeness and one for code quality. In total, you will receive a total of 19 ESNU scores.

All assignments will be evaluated for completeness. Programming Assignments will further be evaluated for code quality. Completeness will be determined using an automated test suite. Code quality will be evaluated by reviewing the code for (1) adherance to the style guide, (2) appropriate choice of algorithms and data structures, and (3) appropriate use of functions and classes to structure the computation. Each assignment will include a more precise description of what is required to earn an E, S, N, or U each each category.

Resubmissions

You will be allowed to resubmit one programming assignment (except PA6, the final programming assignment, which cannot be resubmitted). More specifically, once a programming assignment is graded and returned to you, there will be an approximately two week window for you to resubmit that assignment. This means that, if you produce work that needs some improvement, you will have a chance to address the graders’ feedback to improve your score on that assignment.

Late Submissions

Late submissions will not be accepted in this class, except under extraordinary circumstances. Please bear in mind that the grading scheme will be set up to absorb a reasonable amount of sub-par work, and also allows you to resubmit at most one programming assignment.

That said, to be clear: if you encounter some sort of emergency (medical, family, etc.) please reach out to your instructor as soon as you are able to do so. We are more than happy to find ways to provide additional flexibility in these situations. Ideally, you should notify us of these circumstances before the work is due so we can discuss options with you.

In other words, our late submission policy applies to ordinary circumstances: if you are having a busy week, if your RSO has an event that overlaps with a deadline, etc., then the grading scheme will have some built-in flexibility for this. Instead of trying to argue for a few extra days to work on an assignment, you should just submit the work you have completed by the deadline, so you can get feedback on that work and use that feedback to improve your work in future assignments, or even to resubmit the assignment as described above.

Exams

Exams will be graded using a traditional grading scheme. The midterm will be worth 35 points and the final will be worth 65 points, for a total of 100 points.

Grading Disputes

Except in very specific cases (described below), you cannot dispute the score assigned to you on a piece of work. The score you receive on a piece of work is meant to convey feedback on your level of mastery, and you should take it as an opportunity to understand the areas of improvement in your work. You are more than welcome to ask us for concrete advice on how to improve your work, and we are always more than happy to have those kind of conversations with students, including going over your code. On the other hand, we will not entertain requests to change your score just because you feel your work deserved a higher score.

There is one exception to this: if a grader made an factual mistake in your grading. Please note that this only includes cases where a grader makes an erroneous statement about your code in their feedback. It does not include cases where you simply disagree with whether something deserves to be flagged as incorrect.

For example, suppose you receive a piece of feedback that says “Incorrect: Function X did not check that parameter Y is greater than zero”. If function X in your code did perform this check, and the grader missed this fact (and erroneously gave you that feedback), you can ask us to review this decision. Please note that, even if the feedback is amended, it may not affect your actual ESNU score.

We ask that you keep these requests brief and to the point: no more than a few sentences identifying the exact statement that the grader made and the reasons you believe the statement was mistaken, including references to specific parts of your code (e.g., “I did check the value of the parameter in line 107”). Focus on laying out the facts, and nothing else.

Finally, it is also your responsibility to make these requests in a timely manner. Requests to review grading mistakes must be submitted no later than one week after a graded piece of work is returned to you. After that time, we will not consider any such requests, regardless of whether the request is reasonable and justified.

Final Grade

We will use the table shown below to assign fnal grades, where the columns represent the following:

  • N + S + E: The minimum number of non-Unsatisfactory scores (i.e., N’s, S’s, and E’s) achieved by the student. This represents the amount of work the student has done in good faith.

  • S + E: The minimum number of scores that are, at least, Satisfactory. This represents the amount of work that the student has done in good faith, and which has room for only moderate/minor improvement.

  • E: The minimum number of Exemplary scores. This represents the amount of work done by the student that is of superior quality.

ESNU Scores (out of 19)

Exam Scores (out of 100)

N+S+E

S+E

E

50 <= T < 60

60 <= T < 75

75 <= T < 90

90 <= T

19

18

13

B

B+

A-

A

19

16

11

B-

B

B+

A-

17

14

8

C+

B-

B

B+

17

12

6

C

C+

B-

B

15

10

3

C-

C

C+

B-

15

8

1

D+

C-

C

C+

For example,a student who:

  • had 2 U’s, 2 N’s, 10 S’s, and 12 E’s

  • and an exam score of 73

would earn a B in the course.