Theory of Computing

The theory of computing is the study of efficient computation, models of computational processes, and their limits. Research at Cornell spans all areas of the theory of computing and is responsible for the development of modern computational complexity theory, the foundations of efficient graph algorithms, and the use of applied logic and formal verification for building reliable systems. In keeping with our tradition of opening new frontiers in theory research, we have emerged in recent years as a leader in exploring the interface between computation and the social sciences.

In addition to its depth in the central areas of theory, Cornell is unique among top research departments in the fluency with which students can interact with faculty in both theoretical and applied areas, and work on problems at the critical juncture of theory and applications.

Faculty

  •  Robert Constable: Type theory and automated reasoning.
  •  Arpita Ghosh: Algorithms and mechanism design in the context of strategic behavior on the Web. Markets and mechanisms for privacy.
  •  Joe Halpern: Reasoning about knowledge and uncertainty, distributed computing, causality, security, game theory.
  •  Juris Hartmanis: Computational complexity theory.
  •  John Hopcroft: Algorithms, information capture and access, random graphs and spectral methods.
  •  Bobby Kleinberg: Algorithms, game theory, learning, and networks.
  •  Jon Kleinberg: Algorithms, social and information networks.
  •  Dexter Kozen: Computational complexity, program logic and semantics, computational algebra.
  •  Rafael Pass: Cryptography and its interplay with computational complexity and game theory.
  •  David Shmoys: Approximation algorithms, computational sustainability.
  • David Steurer: Algorithms and complexity theory, hardness of approximation, SDP rounding.
  •  Eva Tardos: Algorithms, algorithmic game theory.
  •  David Williamson: Approximation algorithms, information networks.

 

Courses

CS 2800: Discrete Structures     Fall 2011 (J. Hopcroft)
Spring 2011 (R. Pass)
CS 2850: Networks     Fall 2011 (D. Easley, É. Tardos)
Fall 2010 (D. Easley, J. Kleinberg)
CS 3810: Intro to Theory of Computing     Fall 2010 (J. Hopcroft)
CS 4812: Quantum Information Processing     Spring 2011 (P. Ginsparg)
CS 4820: Introduction to Algorithms     Spring 2012 (B. Kleinberg)
Spring 2011 (B. Kleinberg)
CS 4830: Introduction to Cryptography     Fall 2010 (R. Pass)
CS 4850: Mathematical Foundations
       for the Information Age
Spring 2010 (J. Hopcroft)
CS 4860: Applied Logic     Fall 2010 (R. Constable)
CS 5846: Decision Theory I     Fall 2010 (L. Blume, J. Halpern)
CS 5860: Intro to Formal Methods     Fall 2011 (R. Constable)
CS 6764: Reasoning About Knowledge     Spring 2012 (J. Halpern)
CS 6810: Theory of Computing     Spring 2009 (R. Pass)
CS 6820: Analysis of Algorithms     Spring 2012 (D. Kozen)
Fall 2010 (R. Kleinberg)
CS 6822: Topics in Algorithms:
        Flows, Cuts and Sparsifiers    
Fall 2011 (B. Kleinberg)
CS 6830: Cryptography     Fall 2011 (R. Pass)
CS 6840: Algorithmic Game Theory     Spring 2012 (É. Tardos)
Spring 2010 (É. Tardos)
CS 6850: The Structure of Information Networks     Spring 2011 (J. Kleinberg)
CS 6860: Logics of Programs     Fall 2010 (D. Kozen)
CS 6862: Formal Methods and Automated Reasoning     Spring 2011 (R. Constable)
ORIE 6334: Approximation Algorithms     Fall 2011 (D. Shmoys)
Fall 2009 (D. Williamson)
ORIE 6335: Scheduling Theory     Spring 2009 (D. Shmoys)