When I pre-registered for this course, I had several reasons. I'm not sure of the relative importance of them, so I'll just list them in random order: it was recommended by an aquaintance (C. Reuter) who took it the first time it was offered; I had encountered P. Ragde (PR) in various contexts over my university career, and had always been impressed by his approach and outlook; I didn't anticipate the material would be challenging in terms of understanding; I found some of the general topics interesting; and, I needed two math courses to make it a complete term. The initial (and only) lecture, designed to scare away students expecting an easy ride, was no surprise to me, since I had looked over the web page, and was under no illusions about the work load students would be asked to bear. But enough about me - let's talk about the course.
I have two major criticisms to make, so I might as well start with those, and see where it leads me. The first is the aforementioned workload. I regret to inform my gentle reader that I am not among those who suffer from "survivors syndrome". Once in class (probably the first or second one), and I think somewhere in the course web space or newsgroup (though I'll be darned if I can find it now), this phenomenon was speculated as a reason for this course getting such glowing student evaluations - that those who manage to get to the end need to believe that their suffering was worth it. There were times in this term when I suffered, largely due to the workload that this course asked, and as is generally the case in these situations, I asked myself whether it was worth it. In my case it was, (obviously, since I'm writing this), but for reasons outside the course (I won't go into my history at UW, but suffice it to say that once the drop/add deadline was passed, there was no turning back). Had it not been for this external pressure, I believe I would have dropped or withdrawn. In retrospect (and at the time), I find this disturbing. Throughout the course, I continued to be interested in the material, and I always enjoyed the discussions; but, when faced with having to write another essay, or evaluate another five, or read another three sections of the book, I found I could not afford to expend the time or energy that it/they deserved. I knew I could do better, so I was increasingly dissatisfied with the products of my efforts, and was often discouraged.
The second major criticism I have is the breadth of material covered. Obviously, the area that a course such as this could cover is vast. Since it is the only course of its kind, it would seem reasonable to try to cover as much of it as possible. I would argue that this is not in fact the case. Given that most of the possible material that could be covered must be ignored, I believe it would be better to concentrate on a smaller set of topics than is currently covered, getting less breadth, but more depth. Of course a potential pitfall in doing this is beating a dead horse, and losing the student interest that is essential to the discussion sessions. The answer to this is more flexibility.
The solution I see to both of these problems is to loosen the structure of the course somewhat. The most significant change I would make would be to make the weekly cycle of essays a bi-weekly one. Details of what happens on which days are left as an exercise for the reader. A companion alteration would be to allow more choice in essay topics. As it currently stands, the essay topics are positioned to roughly follow the discussions. My approach would be to have a set of topics on the web page at the beginning of the term, and for each essay, a student would simply choose one that s/he hadn't previously done. This would allow a student's essays to roughly follow the discussions, but it would not force them to write about something that they are not terribly interested in, or have little to say about. The final major change I would make would be in the selection of material and directing of discussions. As I said above, students might lose interest if a topic pursued too far. To prevent this occurence, I would democratize topic selection. At regular intervals (perhaps at each class, perhaps weekly), a fast poll will be taken (a show of hands would certainly be sufficient) to determine what the next topic is going to be (or if it will remain the same). Again, there would be a pre-posted set of topics available for discussion, and one would be selected that had not been selected before. Along with the each topic description would be posted a set of readings apropos to the topic.
I'm not sure whether this arrangement would result in more topics or less being discussed. I think though, that that's part of the point. While I would have preferred less breadth and more depth, others may not, and this approach lets the particular class decide how to deal with each topic. Now, this loosening of structures will certainly have an effect on the professor(s) and/or TA(s). Firstly, they will have half as many essays to mark. Secondly, these essays will not all be about the same thing. I believe both of these to be positive effects. As far as the students go, I'm not saying that there is no value in a high workload (it certainly forced me to improve my time management skills), but I do question its value in this particular course. To my mind, it makes sense in a more traditional (ie. coding) CS course. In this course however, flexibility and student-driven material would be more appropriate in fulfilling the goals.
Of course, there are caveats to all of this. For instance, decreasing the workload might significantly decrease the dropout rate, making the discussion sessions less manageable. The obvious answer to this is a reasonable enrollment cap, and/or more sections, but I understand the reasons that make both of these unlikely. I'm not sure what practical measures could be taken, so I guess I'll leave that as an exercise to the reader. Also, I'm assuming that there is no unspecified purpose behind the high workload (beyond scaring the class size down). I would have no objection to the current structure if this is the case; but, with the information I have, I think the purpose of the course would be better served with the looser structure I've specified.
So beyond that, there are a few minor nitpicks I could make, but they're largely based on uncontrollable variables that will change every term, so making them would not fulfill a useful purpose. In closing, I'd like to be clear about one thing: overall, I enjoyed the course, and would leave the rest of it alone. The RPEs are a good idea, in both concept and implementation (and I would keep them on a weekly schedule). The peer evaluations are a good idea too. Given my stated views on privacy early in the course, it should come as no surprise that I really liked their public nature. I think I would like to see the web site reorganised (and the scripts rewritten of course), but I'm not sure exactly what I'd want to see, so I'll just leave it at that. I may take a run at it after exams, probably using it as a vehicle for learning python.