CSE 311

This is my course review for CSE 311: Foundations of Computing I. I took the course in autumn 2015 with Shayan Oveis Gharan.

Content

Basically straight out of Rosen. We didn’t actually cover all of the book; I think some more of it will be covered in CSE 312.

Homework

The class uses Gradescope, which is free but annoying to use. The PDFs of the homework are posted online, which students must print (in order to do the homework), but then must scan back into a PDF to turn in…

What I have found strange is that so far for every homework assignment, both of the principal lecturers have sent multiple emails clarifying some of the questions. The course has been taught for many years by at least one of the lecturers, so it is amusing that there is still difficulty in stating the homework problems.

The grading is reasonable most of the time, but the way they teach induction seems juvenile to me, as they expect you to label what your \(P(n)\) is, to explicitly state the inductive hypothesis, and to switch to using \(k\) and \(k+1\) in the inductive step (instead of the original \(n\)). I must echo Richard Muller in saying, “The worst teacher for mathematics is the one that doesn’t recognize an unexpected but correct approach.” I don’t mean to be excessive in my criticism, but if this proof were done for my math 334 class, then nobody would blink an eye: the proof is clearly correct. It seems a bit cruel of the instructors to penalize people for knowing more math.

Something I also dislike, which seems to apply to CSE courses in general: the collaboration policy seems unnecessarily draconian. I again want to contrast this to math 334, where collaboration is very much encouraged, and where the only requirement is that each student write up their own solutions (which is very reasonable; you don’t want to cheat yourself out of doing the work). Meanwhile, in CSE 311, there is the requirement that students “may not record anything from […] discussions”.