Ever since I was a kid I have watched my parents, who were both professors, grade the exams of students by taking great pains to understand what they meant to convey through their answers even though they might not have written down the exact correct thing. I guess I took heart after that. I always try to keep in mind the intention of the student behind writing that particular answer instead of their direct action in writing it. Often it so happens as in the C.S. course I am teaching this semester that a trivial mistake like ending a brace prematurely may disrupt the entire flow of the program. But truly that is not an issue to be harsh about, and reduce the grade of the student. Because in the obvious sense he was writing far more important things which on the other hand happened to be perfect and he sort of overlooked this tiny thing. The fact that he changed the entire result of the program did not make him a bad performer since writing a program without a computer is almost similar to trying to win a war without an army.
In other aspects I sometimes do grade out of instinct and then I go so far as to talk with the concerned student to understand his motivation behind writing it. I have often asked such students whenever I get a chance to meet with them that if they wanted to change one thing about the piece of code they have written, what would it be? That says a lot. Now in other cases like suppose I have already graded a class and found out some common mistakes I go over it in the next class/lab and indirectly lead them to find out their own mistakes. I try never to tell it to them myself. I guess this is another old practice I learnt from my peers. Somewhat unsurprisingly I find students learn more that way rather than spoon-feeding them by directly stating their mistakes in class/lab.
Since one part of my work in grading this semester is grading quizzes, homeworks and another is the lab grading part both of which has a different bunch of students the first thing I try to do is to associate the names of the students with their faces. That way when I return the graded answer sheets back I can let them know about the small things they missed. Usually I grade quizzes and assignments out of a total of 100 marks and split up the entire total into smaller subdivisions so that even if it is one single program I have marks allotted for comments, program correctness, compilation errors, modularity etc. In the case of the labs I always make sure to have a one on one sessions so that I get a clear understanding about their approach and I assign a part of the grade here. It helps because I know where the student is headed and if they are moving in the wrong direction I have an opportunity to bring them back. Also another part of this is I get to take notes on which parts the student needs to improve on before they submit the final version of the lab and I later I can check if they have indeed worked on the changes promised.
I distinctly remember the first time I was grading and I clearly was a novice then. I surely did not have much of an idea regarding grading. I remember turning up at the professor’s office who was teaching that course more than often to understand what it takes to be a good grader. I always had a million questions then most of which I can solve myself now. But is guess that a lot of effort in this has made whatever I am now and that is surely a good thing.