I received my student reviews today, and while I could easily post days' worth of discussions on them, suffice to say there's a non-trivial minority of students who seem unhappy. While it's entirely possible that these students simply do not like my personality (which is unlikely to change to suit their needs) and hence would not like the class regardless of what I do, I'm attempting to reflect more constructively and find things to change next year. (So, in some ways, this is just a note to myself that I happen to be sharing.)
One change I guess I'll have to make is to officially label one textbook Mandatory. I suggest both the standard Introduction to Algorithms and Algorithm Design as useful optional textbooks in the syllabus, and instead provide students with my lecture notes. But several complain they find the lecture notes insufficient, so I'm guessing they don't understand that optional does not actually mean "unnecessary for everyone", and the best solution I can come up with is to make a book mandatory. I can see other uses for this, such as assigning problems from the book as good review problems or problems to cover in section, so perhaps it's really a win for everyone. If anyone cares to offer any insight into which of these two are most useful (keeping in mind I'll still be using and making available my lecture notes) please advise in comments.
(This subset of students also complains that the lecture notes haven't really changed since I first wrote them about ten years ago, which is true enough, although I don't believe that, for example, Prim's algorithm has changed substantially in that time either. The latest edition of Intro to Algs seems to be from 2009, while Algorithm Design now goes all the way back to 2005, so maybe Intro to Algs should win based on newness.)
A number of students also complain about the midterm. Not just that it's too hard -- which is fine for them to complain about, it is indeed quite hard, although I personally would label it "just right" -- but that it's the same day an assignment is due, just before spring break. Somehow, having the midterm after spring break, or before they've done an assignment on the material, has just always seemed like a bad idea to me, but it's clearly not working for them.
I think I've found a creative solution, which is simply to abolish the midterm. This has many advantages beyond dealing with the complaints above. For example, the past couple of years another faculty member has complained about my choice of midterm day, because they wanted to schedule their midterm that day, and didn't think it would be appropriate for the students taking both classes to have to take two midterms. So now I can yield this midterm day.
Further advantages come from my midterm replacement idea. I still want to have in-class assessment, so instead of a midterm, I'll break it up into shorter in-class quizzes. I'll get a more timely idea of what students aren't understanding; we can go over the quiz problems, giving the students more feedback (partially solving a different complaint, that because I don't hand out answers to problem sets, students don't get enough feedback); and now class attendance will be essentially mandatory. I'll let students drop their lowest one or two quizzes, so if they miss a class quiz, they can use a drop, but students will have to get to class more often. (Besides giving lecture notes, my lectures are taped, so currently some students often don't come to class and catch the video later.) The biggest downside is that I'll have to drop some material to make time for this approach. I have some fun lectures at the end about a Least Common Ancestor algorithm and suffix trees (maximal palindromes in linear time!) that I'm sure I'll have to drop at a minimum, but even I admit those are a bit esoteric for a first algorithms course. I can always make the notes available for the interested.
I imagine these changes will fail to please everyone. But I think they're worth a try. As I reread this, I recognize this might all sound sarcastic, and while I've sprinkled in some sarcasm in the discussion, these do seem like things I'll plan to do next year. There are also other changes I'll try to implement with the TAs -- a common complaint is that they can be too picky on details in grading (true enough) and that more math review is needed (certainly possible, best done by splitting up sections into super-advanced/standard/math-phobic?). Then we'll see if any of this effort pays off in next year's reviews.