Theory of Computing

List of Courses

Spring 2018 Courses

  • CS 577:
    Intro to Algorithms
    Shuchi Chawla
  • CS 787:
    Advanced Algorithms
    Eric Bach
  • CS 880:
    Topic TBA
    Jin-Yi Cai

Spring 2017 Courses

  • CS 577:
    Intro to Algorithms
    Shuchi Chawla
  • CS 710:
    Computational Complexity
    Jin-Yi Cai
  • CS 812:
    Arithmetic Algorithms
    Eric Bach

Fall 2016 Courses

  • CS 240:
    Discrete Mathematics
    Beck Hasti
  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Eric Bach, Barış Aydınlıoğlu
  • CS 787:
    Advanced Algorithms
    Shuchi Chawla

Spring 2016 Courses

Fall 2015 Courses

  • CS 240:
    Discrete Mathematics
    Gautam Prakriya, Beck Hasti
  • CS 577:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Shuchi Chawla

Spring 2015 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Gregory Shinault
  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Eric Bach, Deborah Joseph
  • CS 710:
    Complexity
    Dieter van Melkebeek
  • CS 880:
    Beyond Worst-Case
    Shuchi Chawla

Fall 2014 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Deborah Joseph
  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577-1:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 577-2:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Eric Bach

Spring 2014 Courses

  • CS 240-1:
    Introduction to Discrete Mathematics
    Jordan Ellenberg
  • CS 240-2:
    Introduction to Discrete Mathematics
    Reed Ogrosky
  • CS 435:
    Introduction to Cryptography
    Nigel Boston
  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577-1:
    Introduction to Algorithms
    Deborah Joseph
  • CS 787-2:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 812:
    Arithmetic Algorithms
    Eric Bach

Fall 2013 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Deborah Joseph
  • CS 577-1:
    Introduction to Algorithms
    Eric Bach
  • CS 577-2:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 710:
    Complexity Theory
    Jin-Yi Cai

Spring 2013 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Eric Bach
  • CS 520:
    Introduction to Theoretical Computer Science
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 787:
    Advanced Algorithms
    Shuchi Chawla
  • CS 880:
    Topics in Theoretical Computer Science: Pseudorandomness and Derandomization
    Dieter van Melkebeek

Fall 2012 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Deborah Joseph
  • CS 577-1:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 577-2:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 578:
    Contest-Level Programming
    Dieter van Melkebeek
  • CS 710:
    Complexity Theory
    Jin-Yi Cai
  • CS 838:
    A Physical Introduction to Computer Science
    Eric Bach

Spring 2012 Courses

  • CS 577-1:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577-2:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 787:
    Advanced Algorithms
    Eric Bach
  • CS 880:
    Complexity of Counting Problems
    Jin-Yi Cai

Fall 2011 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Deborah Joseph
  • CS 520:
    Introduction to Theoretical Computer Science
    Eric Bach
  • CS 577-1:
    Introduction to Algorithms
    Jin-Yi Cai
  • CS 577-2:
    Introduction to Algorithms
    Jin-Yi Cai
  • CS 710:
    Complexity Theory
    Dieter van Melkebeek

Spring 2011 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Dieter van Melkebeek
  • CS 435:
    Introduction to Cryptography
    Eric Bach
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Honors
  • CS 710:
    Complexity Theory
    Jin-Yi Cai
  • CS 880:
    Algorithmic Game Theory
    Shuchi Chawla

Fall 2010 Courses

  • CS 520:
    Introduction to the Theory of Computing
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 787:
    Advanced Algorithms
    Eric Bach
  • CS 880:
    Quantum Information Processing
    Dieter van Melkebeek

Spring 2010 Courses

  • CS 520:
    Introduction to the Theory of Computing
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 710:
    Complexity Theory
    Dieter van Melkebeek

Fall 2009 Courses

  • CS 520:
    Introduction to the Theory of Computing
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Shuchi Chawla
  • CS 812:
    Arithmetic Algorithms
    Eric Bach

Spring 2009 Courses

  • CS 520:
    Introduction to the Theory of Computing
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 787:
    Advanced Algorithms
    Jin-Yi Cai
  • CS 809:
    Mathematical Techniques for the Analysis of Algorithms
    Eric Bach

Fall 2008 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Eric Bach
  • CS 810:
    Complexity Theory
    Jin-Yi Cai

Spring 2008 Courses

  • CS 435:
    Introduction to Cryptography
    Eric Bach
  • CS 520:
    Introduction to the Theory of Computing
    Shuchi Chawla
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 880:
    Advanced Complexity Theory
    Dieter van Melkebeek

Fall 2007 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Shuchi Chawla
  • CS 812:
    Arithmetic Algorithms
    Eric Bach

Spring 2007 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 810:
    Complexity Theory
    Dieter van Melkebeek
  • CS 880:
    Approximation Algorithms
    Shuchi Chawla

Fall 2006 Courses

  • CS 240:
    Introduction to Discrete Mathematics
    Jin-Yi Cai
  • CS 520:
    Introduction to Theoretical Computer Science
    Dieter van Melkebeek
  • CS 577:
    Introduction to Algorithms
    Shuchi Chawla
  • CS 787:
    Advanced Algorithms
    Eric Bach

Spring 2006 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 787:
    Advanced Algorithms
    Eric Bach
  • CS 880:
    Advanced Complexity Theory
    Dieter van Melkebeek

Fall 2005 Courses

  • CS 435:
    Introduction to Cryptography
    Eric Bach
  • CS 520:
    Introduction to Theoretical Computer Science
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 810:
    Complexity Theory
    Jin-Yi Cai

Spring 2005 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Dieter van Melkebeek
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 812:
    Arithmetic Algorithms
    Eric Bach
  • CS 830:
    Abstract and Concrete Complexity Theory
    Jin-Yi Cai

Fall 2004 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Eric Bach
  • CS 787:
    Advanced Algorithms
    Dieter van Melkebeek
  • CS 810:
    Complexity Theory
    Deborah Joseph

Spring 2004 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 880:
    Advanced Complexity Theory
    Dieter van Melkebeek

Fall 2003 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Eric Bach
  • CS 810:
    Complexity Theory
    Jin-Yi Cai

Spring 2003 Courses

  • CS 435:
    Introduction to Cryptography
    Eric Bach
  • CS 520:
    Introduction to Theoretical Computer Science
    Dieter van Melkebeek
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 810:
    Complexity Theory
    Jin-Yi Cai

Fall 2002 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577:
    Introduction to Algorithms
    Eric Bach
  • CS 787:
    Advanced Algorithms
    Deborah Joseph
  • CS 830:
    Randomness and Derandomization
    Dieter van Melkebeek

Spring 2002 Courses

  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 577:
    Introduction to Algorithms
    Deborah Joseph
  • CS 810:
    Complexity Theory
    Jin-Yi Cai
  • CS 812:
    Arithmetic Algorithms
    Eric Bach
  • CS 880:
    Quantum Information Processing
    Dieter van Melkebeek

Fall 2001 Courses

  • CS 520:
    Introduction to Theoretical Computer Science
    Jin-Yi Cai
  • CS 577-1:
    Introduction to Algorithms
    Eric Bach
  • CS 577-2:
    Introduction to Algorithms
    Dieter van Melkebeek
  • CS 787:
    Advanced Algorithms
    Deborah Joseph