Graduating seniors, what was your major and did you enjoy how it was taught at UW?

I recently completed a combined BS/MS degree in computer science.

Overall, I have to say that I was ambivalent about my experiences with CSE. On the plus side, I made a lot of friends and felt the majority of instructors genuinely cared about teaching and their students; on the minus side, I felt many of the classes weren't really challenging and needed a major overhaul and that some of the professors (usually the older ones) had gotten complacent and gave up innovating on their teaching.

That said, I'm not 100% sure this is necessarily a UW-specific thing. I don't have any hard data to back this up, but my gut feeling is that a large majority of CSE degrees across the world are poorly taught, with just a few exceptions. I can probably grant that UW's CSE department is better then most. But is that really saying much, given that the bar is so low?

But then again, this could also all just be a "me" thing. I was a TA or taught in some capacity for all but one of my quarters here at UW, and so am very consciously aware that there's always a distinct chunk of students who struggle with the material and that my experiences don't necessarily match that of the majority. So I guess take everything I'm saying with a grain of salt?

Other observations and factoids:

  • The quality of the CS classes seems to become more erratic the higher the course numbers are. The 1xx classes are largely well-taught and executed (given the constraints they need to satisfy) and are choreographed to a tee. The 5xx classes sit on the other end of the spectrum: they swerve from being extraordinarily difficult to being a cakewalk.
  • CSE 331 really needs an overhaul. I would literally work on those homework assignments as a way of falling asleep.
  • CSE 507 was a surprise sleeper hit for me. I really struggled with that class, but it was also the most fascinating one I took at UW by far.
  • The department should probably add one or two extra webdev classes or something. I don't think those classes are really necessary (you could probably teach yourself whatever's trendy relatively easily), but it'll shut up some of the more whiny students + it can't be any more useless then 344.

    One interesting idea maybe might be to tie it into the PL classes. For example, we wouldn't learn to use react.js or whatever -- we'd learn how to implement something like it from scratch. 154 can continue to serve as a baseline introduction: it needs to be accessible to 142 students, so it can't deviate too far from what it currently is.

    Actually, now that I think about it, Bodik's version of 401 is pretty much halfway there -- it's nominally about compilers, but all of the assignments end up implementing decent subsets of interesting JS/web stuff. It could be interesting if we relabeled Bodik's 401 as a separate course and made the standard 401 a prereq: that would free Bodik from having to talk about implementing parsers and interpreters and whatever, and give him time to talk about interesting applications of compilers and PL. His course already talks about things like reactive streams and coroutines, but that's really only scratching the surface IMO.

  • The machine learning classes can be really hit or miss, depending on the instructor.

  • It's really embarrassing how many students in the major don't seem to know how to use git. Don't we teach it in 391 or 390 or whatever? And isn't that 391 basically required? Idk if those students were sleeping during that class or whatever, but they really need to get their shit figured out.

  • The department offers tons of incidental opportunities, ranging from TA-ing to research to internships. I think the sheer number of different extracurricular opportunities available to take is one of the main strengths of our department.

/r/udub Thread