# General homework rubric

## Evaluation philosophy

The university requires that I assign each student a letter grade at the end of the quarter. However I find that numeric scores on assignments tend to cause students grading anxiety if they do not achieve a perfect 100%. Nor does the numeric score convey specific, targeted feedback as to what the student has done well on an assignment, combined with feedback on areas for improvement.

As such, I do not assign numeric scores in this class. All homework assignments are evaluated using the grading rubric below. Final grades are calculated as the cumulative performance across all homework assignments. Failure to complete the two weekly peer evaluation assignments causes a minor deduction in the final grade.

## How do the rubric scores convert to a letter grade?

One year on my course evaluations a student commented

[T]he grading policy is locked in some chest somewhere under the ocean

Let’s pull back the curtain and demystify how I calculate final grade! In this course, “Satisfactory” is equivalent to a B+. So if you earned “Satisfactory” on every assignment for every rubric element, at the end of the quarter you would earn a B+. If you earn a combination of “Satisfactory” and “Excellent” scores you are looking at the difference between a B+ and an A-, or an A- and an A. If you earn a combination of “Satisfactory” and “Needs Improvement” scores, then you might be somewhere between a B+ and a B or lower.

Historically, 95% of students earn a B+ or higher. I don’t impose a specific curve, it is simply the case that students rise to meet those expectations by the end of the quarter.

## Rubric

Also consult any specific guidance given in the relevant assignment itself

TopicExcellent:
✓+ coded as +
Satisfactory:
✓ coded as 0
Needs improvement:
✓- coded as -
Coding styleStudent has gone beyond what was expected and required, coding manual is followed, code is well commentedCoding style lacks refinement and has some errors, but code is readable and has some commentsMany errors in coding style, little attention paid to making the code human readable
Coding strategyComplicated problem broken down into sub-problems that are individually much simpler. Code is efficient, correct, and minimal. Code uses appropriate data structure (list, data frame, vector/matrix/array). Code checks for common errorsCode is correct, but could be edited down to leaner code. Some “hacking” instead of using suitable data structure. Some checks for errors.Code tackles complicated problem in one big chunk. Code is repetitive and could easily be functionalized. No anticipation of errors.
PresentationGraph(s) carefully tuned for desired purpose. One graph illustrates one point.

Table(s) carefully constructed to make it easy to perform important comparisons. Careful styling highlights important features.
Graph(s) well chosen, but with a few minor problems: inappropriate aspect ratios, poor labels.

Table(s) generally appropriate but possibly some minor formatting deficiencies.
Graph(s) poorly chosen to support questions.

Table(s) with too many, or inconsistent, decimal places. Table(s) not appropriate for questions and findings. Major display problems.
Achievement, mastery, cleverness, creativityStudent has gone beyond what was expected and required, e.g., extraordinary effort, additional tools not addressed by this course, unusually sophisticated application of tools from course.Tools and techniques from the course are applied very competently and, perhaps, somewhat creatively. Chosen task was acceptable, but fairly conservative in ambition.Student does not display the expected level of mastery of the tools and techniques in this course. Chosen task was too limited in scope.
Reproducibility, compliance with course conventions for submitted workAccess as easy as possible, code runs!SatisfactoryNot an earnest effort to reduce friction and comply with conventions and/or code does not run

## Markdown template

Evaluation
----------------------------------------------------
| Topic                       | Excellent | Satisfactory | Needs Improvement |
|-----------------------------|-----------|--------------|------------|
| **Coding style**            |           |              |            |
| **Coding strategy**         |           |              |            |
| **Presentation**            |           |              |            |
| **Achievement, creativity** |           |              |            |
| **Reproducibility**         |           |              |            |

Remarks:

* Elaborate on above, especially for "Needs improvement."
* Some specific praise?
* Something I learned?
* Specific constructive criticism?
* Something I know and that you, my peer, might like to know because it is relevant to something you struggled with.