Teaching reviews for spring (Algorithms and Data Structures) came in today; time to face the music once again.
Actually, this year, my numbers were up substantially; still room to improve, of course, but unlike the last two years, they didn't make me cringe. If it seems surprising that my teaching numbers would go up when I'm now busy being Area Dean, it seems clear that the credit actually goes to the class. This was easily the best class of students I've had in several years -- a really strong bunch. I think the delta in scores reflect their capabilities more than anything else.
It's always interesting to see the contradictions embedded in the responses. This year, I decided to take advantage of the opportunity to ask specific questions, and asked the class if they preferred the written assignments or programming assignments (and why), and which lecture they would want to see removed/not want to see removed. It was almost 50-50 for the written/programming assignments, with a slight edge to written assignments. And it seems like for every person who really liked the primality testing/RSA lectures, or the least common ancestor/suffix tree lectures, or the lecture on heuristics, there's another who would remove the exact same things. This is entirely consistent with feedback I've gotten directly over the years. You can't please everyone. (Sorry, that should be "I can't please everyone." I shouldn't speak for you.)
A number of students commented on how valuable the material was. The negative version of this is that the course is "CS broccoli" ("you really ought to take it, but you probably won't enjoy it much"), but the positive version is much more pleasant -- the class really shapes how you think about problems, and is IMPORTANT knowledge for CS majors. I made a point this semester of really emphasizing the point that correctness is a design consideration that can be traded off with other performance metrics like time and space, and multiple students commented specifically on finding that idea exciting.
On the downside, I'm still intimidating to some students (on the other hand, several others took me up on my open invitation to go to lunch with them this semester), the exams are too hard, and they want more feedback. And there are too many math majors coming in and messing up the curve.
How is this last problem handled elsewhere? It's almost tempting to have a CS theory course for CS majors and a harder course for math majors. Is it fair to have an "honors track" within the class for the math types and modify the grading curve accordingly?
If you're from the class and you've stumbled on this -- congratulations on making it through. Even if your grade wasn't as high as you might have liked, please don't let it get you down. As you move on how you do on problem sets and timed tests is less important; it's what you can accomplish with the knowledge you've gained. So accomplish something great, and come back and show off to me -- I'll be eager to see it!