Introduction to Algorithms

CSE 421 · Winter 2026 · University of Washington

Design efficient algorithms, prove them correct, and understand the limits of computation.

Mon, Wed, Fri · 1:30–2:20 pm · Gates 20
Instructor: Chinmay Nirkhe

Illustration of a mechanical Turing machine

Lecture and section material†

January

  1. Lecture 1

    Thinking like a computer scientist

  2. Lecture 2

    Writing algorithms and graph traversal

    Reading: KT: 3-3.6, DPV: 4.2-4.3

  3. Section 01

  4. Lecture 3

    Graph traversal, DFS, BFS, applications

  5. Lecture 4

    Directed graphs and greedy algorithms

    Reading: KT: 4-4.2, DPV: 5-5.1

  6. Lecture 5

    Greedy approximation and graph algorithms

    Reading: KT: 12.4,4.4-4.7, DPV: 4.4-4.7

  7. Section 02

  8. Lecture 6

    More greedy algorithms

  9. No lecture

  10. Lecture 7

    Minimum spanning trees

    Reading: KT: 5-5.4, DPV: 2.2-2.4

  11. Section 03

  12. Lecture 8

    Divide and conquer

  13. Lecture 9

    Multiplication algorithms

    Reading: KT: 5.5-5.6, DPV: 2.5-2.6

  14. Lecture 10

    Derandomization, quick sort, and stable matching I

    Reading: KT: 13.5, DPV: 2.4

  15. Section 04

  16. Lecture 11

    Stable matching II and midterm review

    Reading: KT: 1

February

  1. No lecture

  2. Lecture 12

    Dynamic programming I

  3. Section 05

    No worksheet. Section will be a midterm/early pset postmortem

  4. Lecture 13

    Dynamic programming II

    Reading: KT: 6,6.2,6.6, DPV 6.3

  5. Lecture 14

    Dyanmic programming III

    Reading: KT: 6.4, 11.8, DPV 6.4

  6. Lecture 15

    Dynamic programming IV

  7. Section 06

  8. Lecture 16

    Network Flow

    Reading: KT: 7-7.2

  9. No lecture

  10. Lecture 17

    Max Flow/Min Cut

    Reading: KT: 7.2-7.5

  11. Section 07

  12. Lecture 18

    Network flow in polynomial time

    Reading: KT: 7.5-7.7,7.12

  13. Lecture 19

    Network flow applications

  14. Lecture 20

    Non-deterministic polynomial time I

    Reading: KT 8.1-8.4, DPV 8.1-8.3

  15. Section 08

  16. Lecture 21

    Non-deterministic polynomial time II

March

  1. Lecture 22

    Non-deterministic polynomial time III

    Reading: KT 8, DPV 8

  2. Lecture 23

    Non-deterministic polynomial time IV

  3. Section 09

  4. Lecture 24

    Linear programming I

    Reading: DPV 7-7.3

  5. Lecture 25

    Linear programming II

  6. Lecture 26

    Linear programming III

  7. Lecture 27

    Final Review / Epilogue

†. Course schedule and contents subject to change and will be announced throughout the term.↩