pk.org: Computer Security

Course Grades

How I compute course grades

Grading Policy

Your grade for this course is computed through an arcane process of fiddling around with weights and algorithms until I get results that I (not necessarily you) feel are fair, consistent, and reasonably generous.

The course grade will be determined by the following components:

Penalties for Skipping Work

You'll notice that assignments, quizzes, and programming assignments do not count for a big part of your grade. My hope is to encourage you to do this work without worrying about these being high-stakes components where you must achieve perfection in order to get a good grade.

Assignments, quizzes, and programming projects are required for a passing grade. Each category can reduce the final course grade by up to 1.0 GPA point if largely skipped:

For example, a student earning an A (4.0) based on exams but failing to complete assignments, quizzes, and projects could receive a D (1.0).

This structure ensures that exams determine the majority of the grade, while assignments, quizzes, and projects encourage consistent engagement without placing undue weight on work that could be easily outsourced.


Exam Grading and Normalization

Exams are designed to challenge you with a mix of straightforward and difficult questions. Because of this, one exam may end up harder than another, and the raw averages can vary. To make grading fair across exams, I may normalize grades using a z-score.


Conventional Scale

If the class average is reasonably high, I use a conventional scale:

As a rough guide:

\[\text{GPA} \approx 0.1 \times \text{grade} - 5\]

The Z-Score Method

If an exam average is unusually low (or unusually high), I adjust grades using the z-score:

\[z = \frac{g - \bar{g}}{\sigma}\]

From the z-score, I compute an approximate GPA:

\[\text{GPA} \approx 3.25 + z\]

Example

Suppose an exam has:
- Average = 70
- Standard deviation = 18.5
- You scored 65

Your z-score is:

\[z = \frac{65 - 70}{18.5} = -0.27\]

Your exam GPA would then be:

\[\text{GPA} = 3.25 - 0.27 = 2.98 \quad (\approx B)\]


Why This Matters

None of this is perfect and I've come to the realization that there is no perfect system I can adopt. This is my hope:

Assignments

Homework assignments are not normalized to mean grades but stand on their own. They are normalized only to the maximum number of points allotted for that assignment. For example, a grade of 8 where the maximum score is 10 is identical to a grade of 80 where the maximum score is 100. Programming assignments count more than written assignments.

Quizzes

If quizzes are given in the class, quiz grades are also not normalized to mean grades. The lowest quiz grade (e.g., a missing quiz) will be dropped. Others will be averaged together. I expect good performance on homework assignments and quizzes. To a large extent, homework assignments and quizzes do not boost your grade as much as keep it from being lowered. Missing several quizzes or homework assignments can hurt your grade. Quizzes largely count as class attendance. I expect most students to have near-perfect grades on these.

Academic dishonesty

I don't want to deal with doling out punishments. If you are caught cheating in any way, I will report you to the Office of Student Conduct and await their verdict on your grade. This may lead to a delay in your grade and failure in the course. They, in turn, will report your actions to the department and to your dean.