Semester Grading Policy

In general, students are graded on an individual basis; that is, there is no "curve." This stems from a basic philosophical stand on my part that your earn grades not lose points. It is my view that you should be given credit for what you do not penalized for what you did not do. This is sometimes called earned value rather than grades.

In developing the grading structure for a specific class, I generally consider two issues: what experiences should the students be exposed to and what professional values should I reward. That attitude is most likely the one your boss will have. In general, I place a high value on class participation and logical excellence.

For the most part, I try to avoid any form of meaningless testing. I consider the ancient technique of the "one hour quiz" as probably a waste of your time and certainly a waste of my and the grader's time. I have a policy usually called performance-based assessment. In most classes, this means that you will be required to design, implement, and test programs that solve problems. I choose problems that require you to solve the problem, not just implement a given solution.

I place great value on your ability to both implement and test your code. Professionally, these two issues are critical. You will almost always earn more value by producing a crash-proof program than you will earn by some clever, fast, wrong algorithm.

Based on these general comments, the basic grading scheme is below

Participation

My teaching pedagogy demands that you come to class prepared to discuss the issues raised either in previous classes or in your required reading. Therefore, daily participation is as important as handing in code. The effective method for computing participation is that we total all the points that were made available and divide that into the points you earned.

In some classes, there are groups. In those classes, a small portion of the participation grade is used to reward you for participation: your groupmates will grade you.

Programs

Programming is a skill like riding a bicycle. You learned these skills in the first year of your university education. I don't see that your coding skills are an issue in this class and therefore I don't reward programming alone. I reward two things: design and correctness. Note: how fast or cute your program seems to be is not an issue here. Correctness is!

Final Exams

The University requires a final exam in all undergraduate courses (I consider 600-level courses undergrad in this case). I do give exemptions but the policy is stringent. By definition, an exemption means an "A". I set the standard because I'm giving out "A"s without seeing all the work. My general approach is that those who do continuous good work should be exempted.