Skip to Content
Back to blog

An Honest Review of Every ULCS Class I Have Taken at Michigan

OlafFebruary 3, 20263 min read
An Honest Review of Every ULCS Class I Have Taken at Michigan

I hope this is helpful to someone in some way. These are the ULCS classes I've taken at Michigan, with quick ratings and notes.


EECS 482 - Operating Systems

W24 (Brian Noble) · Difficulty: 9/10 · Usefulness: 10/10 · Interest: 10/10

OS is probably my favorite class that I've taken at Michigan. Extremely difficult and often mind-wracking projects, but well worth the effort. The class instills the importance of thinking in terms of systems and abstractions.

"The only 5 tools you need in CS are caching, hashing, encryption, indirection, and replication" — Brian Noble


EECS 498 - Formal Verification of Distributed Systems

F24 (Manos Kapritsos) · Difficulty: 7/10 · Usefulness: 3/10 · Interest: 8/10

Manos is an amazing lecturer, but the administration was rough. The class was interesting, and learning Dafny was cool, but I can't say it was super useful. The second project was painful, and Manos was little to no help during office hours. I'm rating the interestingness a bit high because I like distributed systems a lot and that part was cool.


EECS 481 - Software Engineering

F24 (Wesley Weimer) · Difficulty: 4/10 · Usefulness: 4/10 · Interest: 7/10

Professor Weimer was truly a wonderful lecturer, and the class was not much work outside of the homework, with relatively easy tests. I liked the class, but I think a lot of what you learn is easily taught in an internship.


EECS 484 - Database Systems

F24 (Lin Ma + HV Jagadish) · Difficulty: 5/10 · Usefulness: 5/10 · Interest: 4/10

The first half of the class is just learning SQL, and the second half is database internals. Although nothing flashy, I feel like a lot of what you learn in the class is important, and it's a pretty low workload overall. Projects are boring, and tests are pretty mediocre, which is pretty representative of the class as a whole, I would say.


EECS 491 - Distributed Systems

W25 (Brian Noble) · Difficulty: 6/10 · Usefulness: 9/10 · Interest: 10/10

Another Brian Noble classic. Super interesting class and also super important stuff to learn in general imo. Class itself is pretty straightforward, the projects are easy to understand, but hard to pass every private case. Tests are open-note and relatively easy.


CSE 583 - Advanced Compilers

F25 (Scott Mahlke) · Difficulty: 3/10 · Usefulness: 2/10 · Interest: 1/10

The only thing this class taught me is that I hate compilers. Typical open-ended grad course: first half is just learning the basics of compilers, and the second half is just working on your project. This class was worth the hardware credit and low workload, but looking back, I half wish I just had taken 470 or something more interesting.


CSE 595 - Natural Language Processing (NLP)

F25 (David Jurgens) · Difficulty: 6/10 · Usefulness: 7/10 · Interest: 8/10

This was WAY MORE work than what a 3-credit grad course should be. That being said, it was super interesting material, although the 9 am unrecorded lectures were kind of painful. Projects are lwk a lot of work, and if anyone can do them without ever using AI, they are probably a researcher at an AI lab by now. The final project was pretty fun to do, though.


CSE 594 - Human-AI Interaction and Systems

F25 (Vera Liao) · Difficulty: 2/10 · Usefulness: 3/10 · Interest: 4/10

Interesting class, pretty much a guaranteed A as long as you show up and do the project. The lectures themselves weren't super engaging, but this is a topic that has become more important recently.


CSE 585 - Advanced Scalable Systems for Agentic AI

W26 (Mosharaf Chowdhury) · Difficulty: 5/10 · Usefulness: 9/10 · Interest: 8/10

Mostly student-led class: each group gives a lecture on 2-3 papers and also makes an end-of-sem project. The topics themselves are very interesting, and class is not too much work. This class is very much in the sense that you really get out of it what you put in.


CSE 543 - Ethics of AI

W26 (Ben Kuipers) · Difficulty: 2/10 · Usefulness: 5/10 · Interest: 6/10

This class is honestly more of a philosophy class than anything. Lectures really get you thinking about the definition of ethics and how that relates to AI.


I think Michigan CS is an excellent program overall and has something for everyone regardless of their interests. If I could give one piece of advice to my younger self, it would be to take hard classes and ones that I am genuinely interested in.