Course Logistics

About the Course, Prerequisites, and Grading

This course focuses on how to address inference in complex engineering settings. While driven by applications, the course is not about these applications. Rather, it emphasizes a common foundation and conceptual framework for inference-related questions arising in various fields including, but not limited to, machine learning, signal processing, artificial intelligence, computer vision, control, and communication. We focus on inference: learning about the hidden state of the world that we care from available observations. We rely on the powerful language of probabilistic graphical models to leverage on the inherent structure of the given problem and efficiently perform inference. Graphical models build upon the beautiful marriage between probability theory and graph theory and use graphs to capture the fundamental structure of multivariate statistical models and also design efficient computation for inference tasks.

New in 2026 Autumn: We are making the following changes compared to previous offerings of the course.

Prerequisites: Students entering the class should be comfortable with programming and should have a pre-existing working knowledge of linear algebra (MATH 308), vector calculus (MATH 126), probability and statistics (CSE 312/STAT390), and algorithms. For a brief refresher, we recommend that you consult the linear algebra and statistics/probability reference materials on the Textbooks page.

Grading: Your grade will be based on exams (70%), presentation (20%) and participation (10%)

Where to get help

Frequently Asked Questions

I want to register but the class is full. Can I get an add code?

Add codes are given out according to a centralized process organized by CSE. You can reach out to grad-advising@cs.washington.edu .

How do undergrads register for this course? (see next question on add code also)

Generally speaking, most students should plan to take the 400 level courses in the Allen School. There are exceptions however for students who have advanced understanding to occasionally take CSE 500 level courses. Typically a PhD Breadth 500 level course where a student has not previously taken the undergraduate version of the course can be allowed to count as a Core course. Note that this is only for PhD breadth courses. If a course is listed on our breadth requirements for PhD students they are often (not always) allowed as a Core Course substitution. Sometimes there are restrictions however on whether or not a student has taken the 400 level version of the course. An example would be that you are allowed to take 421 and 521 because they differ enough to both count. However there are other courses where you are NOT allowed to receive credit for both, i.e. 446 and 546 for example. It’s best to check with an adviser about your long term plans before requesting an exception. We hope to have an explicit list in the future, but for now, you should check with an adviser. More information in this link

When will I be given the Add Code? (for both undergrads and non-majors)

The initial distribution of add codes for successful petitions begins Wednesday, September 09, and petition review/distribution will continue on a rolling basis from then on until the end of the first week of instruction on October 06. Make sure you petition before October 06 at this google form.

How do non-majors register for this course?

Details in this link .

What is the formula for curving the courses? Will it be posted?

No. Curving each course will be based on an affine transformation of scores up to the discretion of the instructors alone and will not be publicly posted.

How should I prepare for the exams?

The past assignments are all in this single doc : Exercises.pdf . Many of them are from past exams. This is a good source when studying for the exams. We will not ask any coding question on in-class exams.