UW Computer Science and Engineering (CSE) Course Reviews

Who are you?

Hi, you can call me RC.

I am an undergraduate student studying computer science at the University of Washington’s Paul G. Allen School of Computer Science and Engineering. I have taken quite a few courses in CSE here, and heard a lot about most of the other courses that I have not taken personally (or taken yet!) from a wide variety of friends who have taken such courses.

What is this website?

Just like just about every student in the Allen School, you’ve probably had, at some point, had to make tricky decisions about what courses to take what quarter. For me, this was a constant battle every quarter, and it always frustrated me that there was no single really good source of information on the matter.

Instead, I had to ask around everyone I knew (friends, friends of friends, acquaintances, TAs, strangers, and more!), take a look at what other people had said in various places (Reddit, Ed message boards, Discords, and more), go to the official course websites to see what they were like, and then aggregate all of this information together for me to make my choices.

I admit, I definitely go too overboard in this process. But, over the course of doing this, I’ve come to gather a lot of information about courses, information that some have suggested I should refine into some central location for future generations of CSE students.

Put briefly, I intended to collect my thoughts on the wide variety of computer science and engineering courses available at the University of Washington, and write about my experiences, the experiences of people I know, and also what I’ve heard in the hopes it will be useful for future students deciding what to take.

And thus, that’s the website you’re viewing right now!

How do I use this website?

At the top, there should be a search bar where you can search for any particular topic you’re looking for.

Otherwise, you should just browse the relevant sections you’re interested in! For the comprehensive picture, start by reading through the Disclaimers, Caveats, and Limitations, and then getting an understanding of how everything is structured on the Course Review Structure page.

What exists out there already?

Here’s a brief list of sources (some may require a login with CSE credentials) where you can go to find other information on various courses, though I hope to be as comprehensive as possible with my reviews so that you will not need these as much.

Course Catalog

CSE Website Course List*

Allen School Undergraduates EdStem Board (requires login with CSE credentials)

Transitioning into the 300s (requires login with CSE credentials)

Transitioning into the 400s (requires login with CSE credentials)

*As of February 2024, this website contains outdated information, in particular with regards to classes that are not even offered anymore. Some of the courses have been deprecated for almost a decade - the last offering for them was back in 2015!

Finally, I also made a course requirement graph tool, a tool that highlights the dependencies between courses in one coherent graphic (as opposed to individual courses’ direct requirements). This is available at Course-Requirement-Graph.

Did you have any influences or inspirations?

This sort of website is not some unique idea I had. In particular, I would like to credit Fan Pu Zeng of Carnegie Mellon University and Jasper van de Jeugt of Ghent University for their computer science course reviews targetting courses for their particular institutions. I read through these course review pages to get a better idea of how better to write mine, and it was quite helpful!

Fan Pu Zeng’s Carnegie Mellon course reviews

Jasper van de Jeugt’s Ghent University course reviews

Can I reach out or ask you more questions?

I don’t anticipate that very many people would want to reach out to me, but on the off chance you’d like to because you’ve got questions or comments or anything of the sort, please feel free to do so!

I can best be reached via my email (rc2002 [at] uw [dot] edu) or my Discord (computationalist).

This stuff looks difficult! I’m stressed about all of this…

In a simpler world, I’d like to reassure you and tell you that computer science is actually very simple, that the concepts are easy to grasp, that debugging is easy and painless, and that everything will constantly be smooth sailing…

…but that would be highly deceptive of me to say. The reality of the matter is that the deep stretches of computer science do get very complex, the concepts are unintuitive and tricky to grasp, debugging is as difficult as it is laborious, and you will frequently run into problems.

So instead, I will ask you to take a deep breath instead.

You should know that I and the scores of UW students who came before all went through the same struggles:

the hours upon hours puzzling over problem sets for theoretical classes,

or the 3AM debugging for a large project,

or the sinking feeling in your gut when you read the specification for your next homework lab and how it just sounds so far out of reach,

or the terrifying thought that you haven’t prepared enough for an exam you’re about to take,

or looking at all the incredibly amazing stuff all the talented people around you are working on and just wondering why you’re even in the program when everyone else is clearly so much better than you at this,

or how terrifying difficult some of these classes seem when you walk by the students struggling with the material, filling up whiteboards in the undergraduate commons with indecipherable diagrams and symbols.

We’ve gone through the same struggles. It’s not an easy path by any means. But the struggle is well worth it, and if you are passionate about this subject, let that passion fuel you.

You can do this. You will thrive.

We all believe in you.

You got this.