First story: why I give homework a value greater than zero
During my first year as an undergrad, I took Intermediate Programming in C (600.118). To make a long story short, I was not yet a good programmer. I dropped one assignment (an excellent one that I will post later) and I scored a middling 'B' on the hour exams. In the end, I was 0.15% short of an 'A-' in the course and the instructor, a Ph.D. student, gave me a 'B+'. I remember going in to go over the assignments and the final exam with the instructor and asking whether he could have given me any points back on the final, for three reasons:
- 1. Even a couple of points would have raised me to an 'A-'.
- 2. The lowest 'B+' was 0.15% higher than my score, but the second-lowest was about 0.5% higher than that. I felt the cutoff was a little statistically arbitrary, as it wasn't on an absolute scale.
- 3. I actually felt I deserved an 'A-' because I had produced work of comparable quality to the 'B+' students.
The instructor, a Ph.D. student, declined, saying that:
- 1. You have to draw the line somewhere. True, and it was his prerogative to do so.
- 2. He couldn't have told you what his undergrad GPA was, yet he got into grad school. Probably true, but to each his (or her) own: my undergrad GPA (which helped get me into UIUC) was a 3.75 and my graduate GPA (which in fact does not matter, because as they say in grad school, "A is average, B is bad, and C is catastrophic") was a 4.0.
- 3. I shouldn't care so much about grades. "If the story of your life was a book, this wouldn't even be worth a footnote in the appendix." This was incorrect, and here's my footnote: I resolved never to get a B again in a CS course - ever - and I didn't. Three and a half years later, I got my B.S. and M.S.Eng. in CS; eight years later, I got my Ph.D. in CS; nine years later, I signed my contract as a faculty member here at K-State; and fifteen years later, I was promoted and tenured.
A side effect of the above anecdote, though, was that I came out of the course feeling that homework had been worth too little for the amount of study, planning, and effort that we put into it. As Travis Bradshaw wrote, I didn't like that we did all that work seemingly to be ignored and for minimal credit.
Second story: why I've been giving homework less value each year
During my first year of grad school, I worked for one year as a research assistant (RA) in a programming languages group. I learned a few things about research in general, though I had not yet come into my own quality as a researcher. More important, though, I learned one or two things about learning.
I was a much better programmer using imperative programming languages such as C++ by this time, though I was still mediocre with functional programming. In other words, I could produce code as quickly as I've ever been able to, but I still wasn't really a good programmer yet in the sense of being able to "code smarter, not harder". Consequently, I was accustomed to use
g++to "see how many bugs there were", etc.
A few things happened in 1993-1995 that really opened my eyes to this mode of behavior. The first was that Uday Reddy, my supervisor at the time, said to me that:
It shows a lack of understanding, and is a poor programming habit, to let the compiler do your work for you. The compiler is not a debugger, nor is it a style checker in the way of
lint. Type error messages are not "feedback"; they are how the compiler breaks.
If you think about it, this is also true of marked test papers and homeworks. When someone makes an error on an exam or problem set, all we (the instructors, teaching assistants, and graders) can do is deduct or assign points according to the interpretation we deem most appropriate. This may be the harshest, or the most lenient, or - if we are particularly conscientious - the most accurate one.
A second thing that happened in fall, 1994 was that I worked for Sam Kamin as TA for CS325 (Programming Language Principles, a course between CIS 505 and CIS 705 here), I spent an inordinate amount of time grading. On one homework, I made out 110 "grading sheets" with comments on each of 8 or 10 parts. This earned me the ire of the head TA and a bemused explanation from the instructor on what they felt an appropriate level of detail was.
Since then, I have mellowed and matured a bit, and I no longer think the maximum level of detail is necessarily the most conducive to learning. I also see my dad's point of view better. He was adamant that homework should be worth zero, or a minimal amount of credit, not only because it was easier to plagiarize, but because it was really optional: students who have enough background and natural talent might better spend their time preparing for exams, working on a term project, or studying for other courses. This, too, is true, though I resisted it for years because I felt so short-changed by perenially having a solid 'A' in courses and dropping to 'A-' whenever we had a tough final exam. I never felt safe, and in math courses I would feel nauseatingly nervous going in to finals. (I ended up getting a 'B' in my ODE course and taking Numerical Analysis pass/fail because of this.)
A third thing that happened in 1995 was that while we were preparing for qualifying exams, zurich31 showed me a tape of a lecture by Edsger Dijkstra. In it, he reminded the programmer that "when your program fails, you made an error" and that they shouldn't call such errors "bugs" because it anthropomorphizes their own mistakes and externalizes responsibility. I think grades have a similar numbing effect: that is, it's easy to think that grades are assigned rather than earned.
My point is that scores alone are not good feedback, and "knowing how you stand in a course" is just about the poorest indicator of your own understanding that there is. Students, in my opinion, should learn to develop some self-assessment skills. This is especially true of grad students. I know I had poor self-assessment even in terms of comparing myself to other students when I was a first-year undergrad, but it was much better by the time I was a third or fourth year undergrad. By the end of grad school if not at the beginning, students should also be able to gauge their own knowledge "relative to the discipline" - based upon how well they know textbooks, and how broad and deep the scope of one's knowledge is relative to the literature. This skill took me at least another four years to begin to develop, and for me it's still gradually improving.
It's not always easy to know or guess the extent of one's ignorance. But "reinforcement learning by grades", so to speak, is a very weak method with low signal-to-noise ratio.