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 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 SECTION 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