Discrete Mathematics

Anonymous Feedback Comments


I wanted to discuss two anonymous comments that were submitted through Collab (there’s no way to respond directly to submitters, so I’ll post my response here).

Comment 1:

The homework is significantly longer and harder than Edwards’. Also, it extends beyond lecture content too much :(

Comment 2:

Professor,
I believe that we are moving in too fast a pace at the current moment. I am truly enjoying the class material however before I am fully able to grasp the concepts we quickly move on to the next. I understand that this class moves fast however I have attended every single lecture and still did not understand how to solve quite a few of the questions in problem set 2. In fact in more than one instance I had no idea what some of the questions were asking. I would appreciate it if we could have a brief overview of the problem set before they are due. I appreciate you taking the time to address the questions in the later part of the week but we had about 15 minutes to ask pertinent questions for an assignment due less than 48 hours.
I am truly enjoying this class but I will fall very far behind in this class if we continue to go at the pace we are. If we could solve more sample questions related to the problem sets I feel it would go a long way in understanding how to utilize the tools we are being taught.
I hope I am not out of line. I also didn’t feel comfortable bringing this up personally because I am not sure if I am in the majority, minority, or the rarity. I have never had problems with a math course before and have been comfortable doing proofs prior to this. I suppose I am not as fast a learner as the class demands.

First, I do appreciate getting comments like this, and although I would hope most students feel that they could safely send comments like this without needing anonymity, I understand why you prefer to send them anonymously.

As for the content of Comment #1, what you should be worried about is if the workload for the course seems unreasonably high for a 3-unit class. As the university defines things, a 3-unit course is supposed to involve 9 hours of academic work per week (assuming you are coming to class for 2.5 hours per week, this leaves 6.5 hours for outside work). It is sometimes hard to estimate how long it will take students to do an assignment, but I don’t think the readings and problem sets assigned so far in this course should take more than this for most students.

If you find you are spending unreasonably more than this, then it is either because you are not using the time effectively (this is especially a challenge when students work in teams to keep everyone focused and on task); you are trying to do more than is intended (which is great if you have time for it); you are solving problems using a tedious, painstaking approach rather than looking for a clever, fast solution (e.g., making an exhaustive truth table for a 7-input function); you are lacking in some of the necessary background or experience so need more time; or (perhaps most likely) because I have grossly underestimated how long things take when you are learning them for the first time (and me teaching them for the first time).

I do want to understand if things are taking too long and why, so if it seems like the workload for the course is unreasonable I encourage you to come to office hours and discuss what you are doing and whether their might be more effective ways to use your time.

As for the problems “extending beyond lecture content”, that is absolutely what you should expect (indeed, ambitious students should be insulted by assignments that don’t go beyond what was covered in lecture!). The problems are not designed to just test if you have been paying attenting in class and can repeat what is done in class in a straightforward way. Sometimes there will be “warm-up” problems intended to check basic understanding, but the goal of most of the problem set problems is to deepen your understanding of the concepts introduced in class and in the book and improve your abilities as a mathematical thinker, by having you apply them yourself in ways you haven’t seen before.

For Comment #2, I agree that we have covered a lot quite quickly at the beginning of the course. In general, there is always a tension between wanting to include and get to the most interesting material and making sure the foundations are strong.

The best way to make sure I spend more class time on topics is to ask questions about them. My default assumption (which I know is naïve, but I also think is fair) is that if something is explained well in the assigned readings and no one asks questions about it, then I shouldn’t waste class time going over it (unless I have something I think is worthwhile beyond or different from what was in the reading). So far (scanning over #general now), very few students have asked questions like this; nearly all the questions are about clarifying specific problems from the problem sets. I am happy to spend more class time on topics covered in the book if people ask questions about them. It doesn’t even have to be a precise question - its fine to ask things like, “I didn’t understand the set builder notation, can you go over an example in class?” (otherwise, I think its quite boring to talk about set builder notation, and that what is written in the book is sufficient for everyone to understand it without me spending time on it in class).

The other thing I want to say on this is that we’ve introduced a lot of new things fast, but all of the main themes of the course will keep recurring throughout the semester. In particular, towards the two main goals of getting good at making and using definitions, and understanding and constructing proofs, most of the concepts we have introduced already will be seen over and over again throughout the course. The new topics will build on the knowledge and understanding you have, but also (I hope) deepen your understanding of the early topics.

(As one concrete example, following the design of the book, we introduced well-ordering proofs early. We will soon get to proof by induction, which is dependent on well-ordering, and similar to well-ordering proofs in many ways. Proof by induction is probably the most powerful proof technique you’ll learn in this class, and one used all the time in computer science, and we’ll see many different examples of proof by induction throughout the semester since its something that most people need to see many times in different ways and contexts before really getting it.)

Finally, in terms of the overall pacing, my plan for the course (which is very much flexible) is to cover about half the material that is covered in the comparable MIT course. This seems reasonable to me since I expect UVA students to be as good as MIT students, but the way MIT classes work students take fewer courses than UVA students do (it would be more like a 4-unit class here), and there is a lot more class time than we have (they have 3 meetings a week, plus recitation, and four evening “midterm” exams), so the actual class time is about 2x what we have. As another example, Berkeley’s CS70 class covers things with a quite different approach, but also covers fair bit more material than is planned for cs2102 (and with resources more like we have as a public school, they expect students to do their own homework grading). If you think I shouldn’t expect you to be competitive with Berkeley or MIT students, you can also compare to the UNC course, which covers a similar amount of material to this course but with 8am Monday lectures. (I do, of course, have much higher expectations of UVA students than what Virginia Tech does, but I hope you would not use that as a sign that our expectations are too high!)