The Theory of Computing group offers several regular courses in algorithm design and computational complexity as well as more advanced research oriented topic courses.
CS 639 - Introduction to Computational Learning Theory
by Rishab Goyal
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 880 - Cryptography
by Rishab Goyal
CS 880 - Robust Statistics
by Ilias Diakonikolas
CS 435 - Introduction to Cryptography
by Rishab Goyal
CS 639 - Introduction to Computational Learning Theory
by Ilias Diakonikolas
CS 787 - Advanced Algorithms
by Eric Bach
CS 880 - Topics in Theoretical Computer Science
by Dieter van Melkebeek
CS 435 - Introduction to Cryptography
by Eric Bach
CS 577 - Intro to Algorithms
by Marc Renault
CS 577 - Intro to Algorithms HONORS
by Dieter van Melkebeek
CS 760 - Machine Learning
by Ilias Diakonikolas
CS 880 - Cryptography
by Rishab Goyal
CS 520 - Theory of Computing
by Eric Bach
CS 577 - Intro to Algorithms SECTION 1
by Jin-Yi Cai
CS 577 - Intro to Algorithms SECTION 2
by Marc Renault
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Christos Tzamos
CS 577 - Intro to Algorithms SECTION 1
by Eric Bach
CS 577 - Intro to Algorithms SECTION 2
by Marc Renault
CS 577 - Intro to Algorithms HONORS
by Dieter van Melkebeek
CS 880 - Complexity of Counting Problems
by Jin-Yi Cai
CS 520 - Theory of Computing
by Eric Bach
CS 577 - Intro to Algorithms SECTION 1
by Marc Renault
CS 577 - Intro to Algorithms SECTION 2
by Christos Tzamos
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 880 - Quantum Computing
by Dieter van Melkebeek
CS 880 - Advanced Learning Theory
by Ilias Diakonikolas
CS 577 - Intro to Algorithms SECTION 1
by Jin-Yi Cai
CS 577 - Intro to Algorithms SECTION 2
by Dieter van Melkebeek
CS 578 - Contest-Level Programming
by Dieter van Melkebeek
CS 639 - Introduction to Computational Learning Theory
by Ilias Diakonikolas
CS 787 - Advanced Algorithms
by Christos Tzamos
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 880 - Topics in Theoretical Computer Science
by Shuchi Chawla
CS 577 - Intro to Algorithms SECTION 1
by Shuchi Chawla
CS 577 - Intro to Algorithms SECTION 2
by Christos Tzamos
CS 639 - Introduction to Computational Learning Theory
by Ilias Diakonikolas
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 880 - Quantum Computing
by Dieter van Melkebeek
CS 240 - Discrete Mathematics
by Beck Hasti
CS 577 - Intro to Algorithms SECTION 1
by Eric Bach
CS 577 - Intro to Algorithms SECTION 2
by Dieter van Melkebeek
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 787 - Advanced Algorithms
by Christos Tzamos
CS 880 - Advanced Learning Theory
by Ilias Diakonikolas
CS 880 - Approximation and Online Algorithms
by Shuchi Chawla
CS 435 - Introduction to Cryptography
by Eric Bach
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 880 - Topics in Algorithmic Game Theory and Machine Learning
by Christos Tzamos
CS 240 - Discrete Mathematics
by Beck Hasti
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms SECTION 1
by Shuchi Chawla
CS 577 - Intro to Algorithms SECTION 2
by Christos Tzamos
CS 809 - Mathematical Techniques for the Analysis of Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 787 - Advanced Algorithms
by Eric Bach
CS 880 - Complexity of Counting Problems
by Jin-Yi Cai
CS 240 - Discrete Mathematics
by Beck Hasti
CS 520 - Theory of Computing
by Eric Bach
CS 577 - Intro to Algorithms
by Jin-Yi Cai
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 880 - Algorithms for Massive Datasets
by Shuchi Chawla
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 240 - Discrete Mathematics
by Beck Hasti
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Baris Aydinlioglu
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 577 - Intro to Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 240 - Discrete Mathematics
by Gautam Prakriya
CS 240 - Discrete Mathematics
by Beck Hasti
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 240 - Discrete Mathematics
by Gregory Shinault
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 880 - Beyond Worst-Case Analysis
by Shuchi Chawla
CS 240 - Discrete Mathematics
by Deborah Joseph
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 578 - Contest-Level Programming
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Eric Bach
CS 240 - Discrete Mathematics
by Jordan Ellenberg
CS 240 - Discrete Mathematics
by Reed Ogrosky
CS 435 - Introduction to Cryptography
by Nigel Boston
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 787 - Advanced Algorithms
by Dieter van Melkebeek
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 520 - Theory of Computing
by Deborah Joseph
CS 577 - Intro to Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 240 - Discrete Mathematics
by Eric Bach
CS 520 - Theory of Computing
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 880 - Pseudorandomness and Derandomization
by Dieter van Melkebeek
CS 240 - Discrete Mathematics
by Deborah Joseph
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 578 - Contest-Level Programming
by Dieter van Melkebeek
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 838 - A Physical Introduction to Computer Science
by Eric Bach
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 787 - Advanced Algorithms
by Eric Bach
CS 880 - Complexity of Counting Problems
by Jin-Yi Cai
CS 240 - Discrete Mathematics
by Deborah Joseph
CS 520 - Theory of Computing
by Eric Bach
CS 577 - Intro to Algorithms
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Jin-Yi Cai
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 240 - Discrete Mathematics
by Dieter van Melkebeek
CS 435 - Introduction to Cryptography
by Eric Bach
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms HONORS
by Deborah Joseph
CS 710 - Computational Complexity
by Jin-Yi Cai
CS 880 - Algorithmic Game Theory
by Shuchi Chawla
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 787 - Advanced Algorithms
by Eric Bach
CS 880 - Quantum Information Processing
by Dieter van Melkebeek
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 710 - Computational Complexity
by Dieter van Melkebeek
CS 520 - Theory of Computing
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 787 - Advanced Algorithms
by Jin-Yi Cai
CS 809 - Mathematical Techniques for the Analysis of Algorithms
by Eric Bach
CS 240 - Discrete Mathematics
by Deborah Joseph
CS 577 - Intro to Algorithms
by Eric Bach
CS 710 - Complexity Theory
by Jin-Yi Cai
CS 435 - Introduction to Cryptography
by Eric Bach
CS 520 - Theory of Computing
by Shuchi Chawla
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 880 - Harmonic Analysis of Boolean Functions
by Dieter van Melkebeek
CS 240 - Discrete Mathematics
by Deborah Joseph
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Shuchi Chawla
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 710 - Complexity Theory
by Dieter van Melkebeek
CS 880 - Approximation Algorithms
by Shuchi Chawla
CS 240 - Discrete Mathematics
by Jin-Yi Cai
CS 520 - Theory of Computing
by Dieter van Melkebeek
CS 577 - Intro to Algorithms
by Shuchi Chawla
CS 787 - Advanced Algorithms
by Eric Bach
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 787 - Advanced Algorithms
by Eric Bach
CS 880 - Expander Graphs and Applications
by Dieter van Melkebeek
CS 435 - Introduction to Cryptography
by Eric Bach
CS 520 - Theory of Computing
by Deborah Joseph
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 710 - Complexity Theory
by Jin-Yi Cai
CS 520 - Theory of Computing
by Dieter van Melkebeek
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 880 - Abstract and Concrete Complexity Theory
by Jin-Yi Cai
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 787 - Advanced Algorithms
by Dieter van Melkebeek
CS 710 - Complexity Theory
by Deborah Joseph
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 880 - The PCP Theorem and Hardness of Approximation
by Dieter van Melkebeek
CS 520 - Theory of Computing
by Deborah Joseph
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Eric Bach
CS 710 - Complexity Theory
by Jin-Yi Cai
CS 435 - Introduction to Cryptography
by Eric Bach
CS 520 - Theory of Computing
by Dieter van Melkebeek
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 710 - Complexity Theory
by Jin-Yi Cai
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 787 - Advanced Algorithms
by Deborah Joseph
CS 880 - Pseudorandomness and Derandomization
by Dieter van Melkebeek
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 577 - Intro to Algorithms
by Deborah Joseph
CS 710 - Complexity Theory
by Jin-Yi Cai
CS 812 - Arithmetic Algorithms
by Eric Bach
CS 880 - Quantum Information Processing
by Dieter van Melkebeek
CS 520 - Theory of Computing
by Jin-Yi Cai
CS 577 - Intro to Algorithms
by Eric Bach
CS 577 - Intro to Algorithms
by Dieter van Melkebeek
CS 787 - Advanced Algorithms
by Deborah Joseph