Skip to content

Course Guide

Coursework

A combined page featuring all the Ph.D. coursework information, requirements, and classes.

Jump To A Section

Breadth Courses

Buttons for Time Scheduale and  Information School PhD Teaching Schedule

The Allen School Ph.D. course requirements are outlined on the Ph.D. Process webpage. The courses listed here count as Breadth for the specific quarter/year. If you have any questions, please email grad-advising@cs and one of the advisers will connect with you.

Breadth Courses: 2024-2025

Click the icon to go to the MyPlan registration page for each course.

Course offerings are subject to change.

Accessible Accordion

Course Instructor Category


CSE 521 Design and Analysis of Algorithms I

521 Course Pitch
Thomas Rothvoss Theory, Mathematical, & Formal Reasoning


CSE 527 Computational Biology

527 Course Pitch
Su-In Lee ML/AI, Interacting with Data, & Statistical Applications


CSE 534 Quantum Information and Computation

534 Course Pitch
Chinmay Nirkhe Theory, Mathematical, & Formal Reasoning


CSE 546 Machine Learning

546 Course Pitch
Matthew Golub and
Pang Wei Koh
Theory, Mathematical, & Formal Reasoning
OR ML/AI, Interacting with Data, & Statistical Applications


CSE 543 Deep Learning
Simon Du ML/AI, Interacting with Data, & Statistical Applications


CSE 548 Computer Systems Architecture
Mark Oski System Design & Implementation


CSE 557 Computer Graphics
Gilbert Bernstein ML/AI, Interacting with Data, & Statistical Applications
OR Human-facing


CSE 573 Artifical Intelligence

573 Course Pitch
Luke Zettlemoyer ML/AI/Statistical Applications/Interacting with Data


CSE 579 Intelligent Control through Learning and Optimization
Abhishek Gupta ML/AI, Interacting with Data, & Statistical Applications


CSE 580 Computing for Social Good
Kurtis Heimerl Human-facing

Course Instructor Category


CSE 503 Software Engineering
Michael Ernst System Design & Implementation


CSE 510 Human-Computer Interaction

510 Course Pitch
James Fogarty Human-facing


CSE 517 Natural Language Processing

517 Course Pitch
Noah Smith ML/AI, Interacting with Data, & Statistical Applications


CSE 546 Machine Learning
Matt Golub, Pang Wei Koh Theory, Mathematical, & Formal Reasoning
OR ML/AI, Interacting with Data, & Statistical Applications


CSE 550 Systems for All
Baris Kasikci System Design & Implementation


CSE 556 Computational Fabrication

556 Course Pitch
Adriana Schulz ML/AI, Interacting with Data, & Statistical Applications
OR Human-facing


CSE 564 Computer Security And Privacy

564 Course Pitch
Tadayoshi Kohno System Design & Implementation OR
Human-facing


CSE 567 Principles Of Digital Systems Design
Michael Taylor System Design & Implementation


CSE 582 Ethics in AI
Yulia Tsvetkov ML/AI, Interacting with Data, & Statistical Applications
OR Human-facing

Course Instructor Category


CSE 505 Programming Languages
CSE 505 Course Pitch
Zachary Tatlock Theory, Mathematical, & Formal Reasoning


CSE 512 Data Visualization

512 Course Pitch
Jeffrey Heer ML/AI, Interacting with Data, & Statistical Applications
OR Human-facing


CSE 525 Random Algorithms

525 Course Pitch
Shayan Oveis Gharan Theory, Mathematical, & Formal Reasoning


CSE 526 Cryptography

526 Course Pitch
Stefano Tessaro Theory, Mathematical, & Formal Reasoning


CSE 541 Interactive Learning

541 Course Pitch
Kevin Jamieson ML/AI, Interacting with Data, & Statistical Applications


CSE 547 Machine Learning for Big Data

547 Course Pitch
Statistics Department Instructor ML/AI, Interacting with Data, & Statistical Applications


CSE 562 Mobile & Wireless Systems

562 Course Pitch
Shyam Gollakota System Design & Implementation OR
ML/AI, Interacting with Data, & Statistical Applications


CSE 571 AI-based Mobile Robotics

571 Course Pitch
Dieter Fox ML/AI, Interacting with Data, & Statistical Applications


CSE 574 Explainable AI
Su-In Lee ML/AI, Interacting with Data, & Statistical Applications


CSE 581 Computer Ethics

581 Course Pitch
Katharina Reinecke Human-facing

All Breadth Courses by Group

Group 1: Theory, Mathematical, & Formal Reasoning
  • CSE 505: Programming Languages
  • CSE 507: Computer-aided Reasoning
  • CSE 515: Statistical Methods
  • CSE 521: Algorithms for all
  • CSE 525: Randomized Algorithms
  • CSE 526: Cryptography
  • CSE 531: Complexity
  • CSE 534: Quantum Information and Computation
  • CSE 535: Theory of Optimization and Continuous Algorithms
  • CSE 546: Machine Learning
  • CSE 552: Distributed Systems
Group 2: System Design & Implementation
  • CSE 501: Compilers
  • CSE 503: Software Engineering
  • CSE 544: Databases
  • CSE 548: Computer Architecture
  • CSE 549: High-performance Computer Architecture
  • CSE 550: Systems for All
  • CSE 551: Operating Systems
  • CSE 552: Distributed Systems
  • CSE 553: Data Centers
  • CSE 561: Networks
  • CSE 562: Mobile Systems & Applications
  • CSE 564: Security
  • CSE 567: Principles of Digital System Design
Group 3: ML/AI, Interacting with Data, & Statistical Applications
  • CSE 512: Data Visualization
  • CSE 515: Statistical Methods
  • CSE 517: Natural Language Processing
  • CSE 527: Computational Biology
  • CSE 528: Computational Neuroscience
  • CSE 529: Computational Genomics
  • CSE 541: Interactive Learning
  • CSE 542: Reinforcement Learning
  • CSE 543: Deep Learning
  • CSE 546: Machine Learning
  • CSE 547/STAT 548: Machine Learning for Big Data
  • CSE 556: Fabrication
  • CSE 557: Graphics
  • CSE 562: Mobile Systems & Applications
  • CSE 571: Robotics
  • CSE 573: Artificial Intelligence
  • CSE 574: Explainable Artificial Intelligence
  • CSE 576: Vision
  • CSE 579: Intelligent Control through Learning and Optimization
  • CSE 582: Ethics in Artificial Intelligence,
  • Genome 540: Computational Molecular Biology
  • INSC 571: Quantitative Methods in Information Science
Group 4: Human-facing
  • CSE 510: Human-Computer Interaction
  • CSE 512: Data Visualization
  • CSE 513: Disability Inclusion for Technologists
  • CSE 556: Fabrication
  • CSE 557: Graphics
  • CSE 564: Security
  • CSE 580: Computer Science for Social Good
  • CSE 581: Computing Ethics
  • CSE 582: Ethics in Artificial Intelligence
  • HCDE 544:Experimental and Quasi-Experimental Research Methods
  • HCDE 545: Qualitative Research Methods
  • INSC 570: Research Design
  • INSC 571: Quantitative Methods in Information Science
  • INSC 572: Qualitative Methods in Information Science

Back to top


CSE++ Courses

In addition to the 5 Breadth courses, in order to complete the required coursework for the Ph.D. students must take 2 courses from the CSE++ list if they haven’t already done so.  CSE++ courses include:

  • Graded Ph.D.-level courses numbered 500 and above in CSE (including additional Breadth courses).
  • Graded Ph.D.-level  courses numbered 500 and above in related disciplines such as: E E, MATH, A MATH, HCDE, INSC (iSchool PhD), STAT, LINGUISTICS, and GENOME.
  • Additional pre-approved CSE++ courses from disciplines not included in the options above are: EDC&I 510, ME 564, ME 565, BIME 532, NEURO 545.

Courses not on the CSE++ list may be approved on a case-by-case basis. Students who wish to request approval for additional courses should send the Director of Graduate Student Services a document including the course name and description, a syllabus or course webiste, a paragraph explaning why the course should be approved, and proof of faculty advisor endorsement. 

These final courses can be completed at any time during the Ph.D. program.

CSE 590/591 seminars do not count toward this requirement.

Note: 
HCDE 544 and INSC 571 cannot both be used toward the CSE Ph.D.

HCDE 545 and INSC 572 cannot both be used toward the CSE Ph.D.

Back to top


Graduate Special Topics Courses

If you have any concerns or questions, feel free to reach out to the Instructor listed (for course content questions) or grad-advising@cs (for general registration troubleshooting). You can also schedule an appointment with a grad adviser if needed. If you are interested in taking a CSE 500-level course and need an add code (any non-major), then please review the enrollment petition information on the CSE Non-Major Registration page under “Ph.D./Doctoral Courses (CSE 500 level)”.

Each section has a field designated Non-major Enrollment: that provides information on if the course allows for students outside the Allen School Ph.D. program, and how to apply if it does. If you are an Allen School student (Ph.D. or 5th-year), you typically will not need an add code or to apply for enrollment. You can contact grad-advising@cs for registration assistance if needed.

The section marked with an Mailing List: is the mailing list for the course. You’re welcome to use it to contact the instructors for questions.

599s – Special Topics in Computer Science

Accessible Accordion

CSE 599: Systems for Machine Learning

Description: ML workloads have become an integral part of datacenter-based computing services. In this course, we will study the various parts of the systems stack required to support such workloads, starting from the underlying architecture and the compiler and moving on to network stacks and distributed systems. We will examine how to improve the efficiency of both training and inference systems, study the capabilities of different frameworks, analyze the needs of different ML workloads, and explore ways existing systems can be enhanced.
Prerequisites: CSE major and upper division systems course (e.g., CSE 451 or CSE 452 or CSE 461).


CSE 599: Approximate Counting and Mixing Time of Markov Chains

Description: In this course we will study several techniques developed in the last 30 years to sample from sophisticated probability distributions of exponential size. We mostly focus on the applications of the Markov chain Monte Carlo method in efficient sampling and counting. The first half of the course will focus on classical techniques such as (path) coupling and the canonical path method. In the second half will study more recent developments such as the spectral independence and entropic independence machinery and applications in sampling bases of matroids and independent sets of a graph.
Prerequisites: No prerequisites are necessary but students are advised to have taken CSE 521 (or 525) prior to taking this course.


CSE 599: Cryptographic Protocols for Privacy-Preserving Systems

Description: Once considered far from practical, continuous advances in efficiency of cryptographic tools over the past two decades have opened up their use in the design of systems providing strong privacy guarantees for users. This graduate level course will provide an overview of these powerful cryptographic tools including multi-party computation, zero-knowledge proofs, and differential privacy, and discuss their use in the design of real deployed systems enabling privacy-preserving messaging, payments, machine learning, and more.
Prerequisites: CSE major cryptography course or equivalent (e.g., CSE 426).


CSE 599: Deep Learning (for BS/MS Students)

Description: Deep Learning has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classification, localization and detection and language understanding tasks like summarization, text generation and reasoning. Recent developments in neural network (aka “deep learning”) approaches have greatly advanced the performance of these state-of-the-art systems.
This course is a deep dive into the details of deep learning algorithms, architectures, tasks, metrics, with a focus on learning end-to-end models. We will begin by grounding deep learning advancements particularly for the task of image classification; later, we will generalize these ideas to many other tasks. During the 10-week course, students will learn to implement and train their own neural networks and gain a detailed understanding of cutting-edge research in deep learning. Additionally, the final assignment will give them the opportunity to train and apply multi-million parameter networks on real-world vision problems of their choice. Through multiple hands-on assignments and the final course project, students will acquire the toolset for setting up deep learning tasks and practical engineering tricks for training and fine-tuning deep neural networks.
Prerequisites: Linear algebra (e.g. Math 208) and Calculus (e.g. Math 124, 125).

CSE 599: Quantum Learning Theory

Description: This course is an introduction to the topic of “quantum learning theory”, in the sense of learning properties of a quantum state given copies of it. Unlike a classical string, whose description is entirely known from reading it once, it is not in general possible to learn the “description” of a quantum state given a single copy of it, since a measurement in general disturbs it. This leads to the question: when can we learn (a useful description of) a quantum state? We will explore various settings starting from foundational results on quantum state “discrimination” (i.e. identifying a state from a known family) and quantum state ”tomography” (i.e. learning the entire description of the state given a large amount of copies), and then moving to recent developments on “shadow tomography” (i.e. learning a useful classical description of a state given relatively few copies). This is an advanced class: having done well in the graduate course “Quantum Information and Computation” (CSE 534) (or having an equivalent background) is a prerequisite. TBA<


CSE 599: TBA

Description: TBA


CSE 599: Empirical Research Methods

Description: Valid experimental designs, sound data analyses, and reproducibility of empirical results are core tenets of the scientific method — crucial not only for specific domains in computer science but rather any field that seeks empirical evidence.

This course covers qualitative and quantitative research methods and focuses on properly designing experiments and observational studies, choosing appropriate statistical methods and models, and reasoning about the validity of experimental designs (in terms of internal, external, and construct validity). This course involves lectures, paper discussions, as well as a hands-on experience for data analysis and visualization with R.

CSE 599: Machine Learning for Neuroscience

Description: Brains are remarkably complex, massive networks of interconnected neurons that underlie our abilities to intelligently sense, reason, learn, and interact with our world. Technologies for monitoring neural activity in the brain are revealing rich structure within the coordinated activity of these interconnected populations of neurons. In this course, we will discuss machine learning models that can be applied toward 1) understanding how neural activity in the brain gives rise to intelligent behavior and 2) designing algorithms for brain-interfacing biomedical devices. Topics will include basic neurobiology, classical probabilistic machine learning foundations, and modern deep learning approaches, including variational autoencoders and recurrent neural networks. Coursework will include readings from the machine learning and computational neuroscience literature, programming assignments, and a final modeling project applied to neural population data.

 

CSE 599: Computing Education Research

Description: Computing Education Research (CER) is the study of how people learn to use programmable and/or trainable technologies. It includes computer science education, as well as other contexts where people learn how to boss computers around to pursue their own interests. Accountants learning to program macros in Excel, biologists learning Python to crunch their data, and children creating interactive stories in Scratch are all people and activities that CER attends to. So are experienced software engineers learning to weave machine learning into their applications, CS graduate students getting their heads around dependent types, and teachers figuring out how to integrate computing into their courses. CER studies learning, and how to support it, using a variety of methods, including design.

This graduate seminar will provide students with a broad understanding of the history and state of the field, including classic systems and research as well as emerging areas of inquiry. We will read and discuss papers from CER, statistics education, science education, and the learning sciences. Students will write a research proposal that charts how we could deepen our collective knowledge about how people learn computing.

 

CSE 599: TBD

Description: TBA

 

CSE 599: TBD

Description: TBD

 

CSE 599: Finite Model Theory

Description: TBA

 

CSE 599: Advanced Machine Learning

Description: TBA

Collaborative Course Offerings

Collaborative course offerings for 23-24 will be updated as information becomes available.

590s – Research Seminar

Accessible Accordion

CSE 590 (C): Computational Biology

Description: A taste of current research in Computational Biology (local and non-) + critical reading of literature + presentation skills. Students, with faculty advice, pick and present CompBio papers from recent journals/conferences. Students & faculty also present their own research (mostly in Spring, but may be sprinkled throughout, depending on schedules). Background knowledge of biology is not assumed; come learn!

Non-major Enrollment: The seminar is interdisciplinary, and non-majors are welcome. Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: See Webpage

 

 

CSE 590 (C1): Change Seminar

Description: Change is a group of faculty, students, and staff at the UW who are exploring the role of information and communication technologies (ICT) in improving the lives of underserved populations, particularly in the developing world (though domestically as well). We cover topics such as global health, education, micro finance, agricultural development, and general communication, and look at how technology can be used to improve each of these areas.

Non-major Enrollment: The seminar is interdisciplinary, and non-majors are welcome. Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: http://changemm.cs.washington.edu/mailman/listinfo/change

 

 

CSE 590 (D): Creativity and Computing

Description: Computer scientists ask what it means for a work or process to be “creative” seriously, seeking formal models and tools to help humans and computers define, explore, and augment solution spaces together. We will cover foundational work on computational approaches to creativity as well as modern applications of this work to fields including the visual arts, music, mathematics, and the sciences.

The seminar will consist of weekly discussions of readings that help us understand creative processes more formally and computationally. Participants are asked to take one hour a week for reading preparation, and to co-lead one discussion. We have background readings prepared, and are looking forward to selecting additional readings based on everyone’s research and hobbies. It should be a fun time!

Non-major Enrollment: The seminar is available for all UW students and the content is designed to be widely accessible. Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: N/A

 

CSE 590 (E): Computer Science Education Seminar

Description: Are you interested in discussing different approaches to teaching Computer Science? Are you wondering what kind of research people do in CS education? Are you thinking about a career that involves a lot of CS teaching?<br.
A seminar for people interested in discussing topics related to Computer Science education. The format for this quarter will be a weekly discussion of readings from a variety of sources such as CS education conferences (e.g. SIGCSE, ITiCSE, ICER), journal articles on teaching approaches, or excerpts from books on teaching. Participants will be expected to do the readings, participate in weekly discussions, and co-lead one of the discussions.

Non-major Enrollment:Complete the 590E enrollment request form.

 

 

CSE 590 (F): Computing And The Developing World

  • Instructor:Richard Anderson (he/him)
  • Course Website: TBA

Description: The seminar will consist of weekly discussions of readings that help us understand creative processes more formally and computationally. Participants are asked to take one hour a week for reading preparation, and to co-lead one discussion. We have background readings prepared, and are looking forward to selecting additional readings based on everyone’s research and hobbies. It should be a fun time!

  • Non-major Enrollment: Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

 

 

CSE 590 (H): HCI/Interactive System Seminar

Description: A weekly seminar held on Fridays at noon, run by HCI PhD students, where we gather informally to discuss new and foundational HCI literature, get to know one another, and learn together. Typically, it’s a mixture of guest speakers, paper discussions, and informal conversations about HCI research. HCI Seminar is intended primarily for graduate students who do HCI research with CSE faculty members.

Non-major Enrollment: Open to students who are research-active with relevant CSE faculty. Email grad-advising@cs.washington.edu with your request, specifying who you are research-active with, in order to receive an add code.

 

 

CSE 590 (J): Dub Seminar

Description: DUB is a grassroots alliance of faculty, students, researchers, and industry partners interested in Human Computer Interaction & Design at the University of Washington.

Our mission is to bring together an interdisciplinary group of people to share ideas, collaborate on research, and advance teaching related to the interaction between design, people, and technology.

Non-major Enrollment: Student researchers can email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: http://dub.uw.edu/mailman/listinfo/dub

 

 

CSE 590 (L): Networks

Description: TBA

 

CSE 590 (N): Software Engineering

Description: TBA

Non-major Enrollment: Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

 

 

CSE 590 (P): Programming Languages

Description: TBA

Non-major Enrollment: Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

 

 

CSE 590 (Q): Database Seminar

  • Instructor:Magdalena Balazinska (she/her)
  • Course Website: TBA

Description: Weekly seminar organized by database faculty and students where we read papers on exciting topics related to data management.

Non-major Enrollment: The seminar is available for all UW students and the content is designed to be widely accessible. Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: data-science-seminars@cs.washington.edu

 

 

CSE 590 (R): Robotics Colloquium

Description:

      The Robotics Colloquium features talks by invited and local researchers on all aspects of robotics, including control, perception, machine learning, mechanical design, and interaction. The colloquium is held Fridays between 1:30-2:30pm.

Non-major Enrollment: Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

 

CSE 590 (V): Vision

Description: Only for Linda Shapiro’s research students in CSE, ECE and BIME.

Non-major Enrollment: Only students who are doing research with Linda Shapiro.

 

 

CSE 590 (W): Create Accessibility Seminar

Description: The seminar is for students and faculty members to explore research in accessible computing for people with disabilities in the context of human-computer interaction (HCI). The seminar consists of short student presentations of current research results, followed by discussion and critical evaluations the research.

 

 

CSE 590 (X):How to PhD II

Description: A seminar for first year PhD students focused on enriching students’ sense of belonging, camaraderie and purpose in their first year in the program. The seminar also addresses advising, choosing research problems, and the core skills needed to thrive in the Ph.D. program and beyond, including making engaging presentations and writing clearly, time management and work-life balance. Meets 3-4 times per quarter.

 

 

CSE 590 (Y): Computer Security And Privacy Seminar

Description: The focus of this quarter is on papers (to be selected by participants) appearing in recent computer security & privacy or security & privacy-adjacent venues. All enrolled participants are expected to present at least one paper and to attend the rest of the presentations.

Non-major Enrollment: Email instructor for permission and forward confirmation to grad-advising@cs.washington.edu in order to receive an add code.

Mailing List: https://mailman.cs.washington.edu/mailman/listinfo/uw-security-research

 

 

CSE 590 (Z): Theory

  • Instructor:James R Lee (he/him)
  • Course Website: TBA

Description:

MyPlan

591 – Group Projects

Accessible Accordion

CSE 590 (A): Programming Systems

Description: TBA

 

CSE 590 (B): TBA

Description: TBA

 

CSE 590 (D): Database

Description: TBA

 

CSE 590 (O): TBA

Description: TBA

 

CSE 590 (P): TBA

Description:

 

CSE 590 (Q): TBA

  • Instructor: Luke Zettlemoyer
  • Course Website: TBA

Description: TBA

MyPlan

Back to top