In my courses, I determine the semester average according to the percentages given in the course syllabus, and then I assign letter grades using this scale:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I usually assign + or - grades to numbers that lie on the boundaries. For example, a grade of 89.2 may receive an A- instead of a B, and a grade of 88.4 may receive a B+ instead of a B. I often take into account non-numeric factors like consistent attendance, effort, and class participation when deciding whether to assign a B+ instead of a B, C+ instead of a C, etc., to grades lying on the boundaries.
I normally expect the mean and median semester grades to fall in the upper 70s in most of my courses. If the mean and median are significantly below this range, then I will be more generous in my grade assignments: some grades in the 80s will receive an A, some grades in the 70s will receive a B, and so on. This does not frequently happen in Programming Languages, Artificial Intelligence, Introduction to Programming, and the other software-oriented courses I teach, but it does occasionally happen in Theory of Computing.