Theory of Computation: Please see our new website here 

Theory of Computation (TOC) is the study of the inherent capabilities and limitations of computers: not just the computers of today, but any computers that could ever be built. By its nature, the subject is close to mathematics, with progress made by conjectures, theorems, and proofs. What sets TOC apart, however, is its goal of understanding computation  not only as a tool but as a fundamental phenomenon in its own right. At MIT, we are interested in a broad range of TOC topics, including algorithms, complexity theory, cryptography, distributed computing, computational geometry, computational biology, and quantum computing. What TOC Is About The following questions, while not exhaustive, illustrate what theoretical computer scientists are interested in:
As the last two questions suggest, TOC has increasingly been branching out, applying its intellectual toolkit to biology, economics, physics, and many other fields. But at the same time, it has also maintained a core of fundamental ideas and problems of its own. TOC's most notorious open problem is called P versus NP. This is a problem that has withstood attack since the dawn of the computer age, that has clear and staggering practical implications, and that the Clay Mathematics Institute has recognized as one of seven great mathematical challenges of the millennium. Informally, the problem asks whether there exist puzzles for which a computer can easily recognize a solution, yet cannot find a solution without trying an astronomical number of possibilities. Based on experience, it seems obvious that such puzzles exist: think of scheduling airline flights, or piecing together a jigsaw puzzle, or breaking cryptographic codes, or for that matter solving mathematical problems like P versus NP itself! Yet after fifty years of research, no one can has been able to rule out the possibility of a "magic bullet" that would solve all of these problems and more, in barely more time than is needed to write them down. Over the last few decades, TOC has at least made a great deal of progress in understanding why this problem is so difficult, and in solving easier versions of it. Despite (or perhaps because of) its remove from immediate practical concerns, TOC has had a decisive impact on the development of real computer technology. In the 1930's, Alan Turing's proof of the unsolvability of the Hilbert Entscheidungsproblem led him to discover the basic concepts, such as universality, that underlie all modern computer systems. Here at MIT, the invention of the RSA publickey cryptosystem, by Ron Rivest, Adi Shamir, and Len Adleman in 1976, provided an essential foundation for secure electronic commerce, without which, for example, Amazon and eBay could not exist. More recently, the study of efficient algorithms for routing data through networks, by MIT's Tom Leighton and Daniel Lewin, led to the creation of Akamai, a company that now handles about 15 percent of all traffic on the Internet. In recent years, many TOC researchers have taken an interest in using the link structure of the Web and social networking sites to infer information about community; mining massive data sets for statistical information while still protecting individual privacy; building reliable sensor networks out of unreliable components; designing protocols for secure electronic voting; and applying "algorithmic thinking" to current problems in bioinformatics, statistical physics, and other sciences. As with any basic research, though, it is much easier to point to past successes than to predict what the next great application of TOC insights will be. MIT has the largest TOC research group in the world. By following the links below, you can learn more about what we do... The Cryptography and Information Security (CIS) research group is jointly led by Professors Shafi Goldwasser, Silvio Micali, and Ronald L. Rivest. How can mathematics and proofs contribute to the security of our computing infrastructure? What are the ``right'' models for computation and communication in the presence of adversaries? What the minimal assumptions about the computational difficulty of solving certain problems are required to achieve specified cryptographic objectives? Similarly, what minimal assumptions about the underlying hardware platform are needed? How does one design cryptographic primitives (like cryptographic hash functions) to be both efficient and secure? How do number theory, ellipitic curves, and lattices help provide security? How does cryptography relate to other areas such as computational complexity, errorcorrection, game theory, or quantum computation? How can cryptography be used to provide anonymous credentials, secure email, or universally verifiable voting? These are but a few of the questions that have been addressed by the CIS group, which has a long history of major developments in both the theoretical and the practical aspects of cryptography and information security. Theory of Distributed Systems (TDS). The Theory of Distributed Systems group, led by Prof. Nancy Lynch, works on a wide range of problems in distributed computing theory. Much of our work studies algorithms and lower bounds for typical problems that arise in distributed systemslike resource allocation, implementing shared memory abstractions, and reliable communication. Until recently, the focus was on rather static wired systems (see Lynch's book on Distributed Algorithms). However, in the past few years, most of our work has been on dynamic systems, in which the participants may come and go. We are now especially interested in wireless mobile ad hoc networks. In mobile networks, one wants to solve many of the same problems as in wired networks; however, new problems arise (e.g., getting messages to a particular geographical location, or controlling robots or cars), and new powers can be assumed (e.g., a node may know its approximate location). These new considerations provide interesting challenges for theoretical work. The Computation and Biology group, led by Prof. Bonnie Berger, works on a number of problems at the interface of algorithms and biology. Many of the advances in modern biology revolve around recent advances in automated data collection and the subsequent large data sets drawn from them. We design algorithms to gain biological insights from this data and from future sources. We work on a diverse set of problems, including Protein Folding, Network Inference, Genomics, and Disease Classification. Additionally, we collaborate closely with biologists implementing these new techniques in order to design experiments to maximally leverage the power of computation for biological explorations. Quantum Information. In 1994, CSAIL member Peter Shor showed that quantum computers, if built, would be able to break most of the cryptographic codes used in modern electronic commerce. This result played a central role in launching quantum computing and information as a field of study. Today Shor works on a variety of topics in quantum information theory and quantum algorithms. Scott Aaronson's research focuses on the limits of quantum computers, and more generally, on the interface between computational complexity theory and physics. Computational Complexity. CSAIL members have done foundational work in computational complexity theory. Together with Larry Stockmeyer, Albert Meyer defined the polynomialtime hierarchy in 1973, while Michael Sipser has worked on circuit lower bounds, interactive proofs, and probabilistic computation. Jointly and in a number of collaborations Silvio Micali and Shafi Goldwasser discovered zeroknowledge interactive proofs (with Rackoff) in the 1980's; followed by mutliprover inteactive proofs and their connection to inapproximability of HPhard problems. They both continue to work on the foundations of cryptography. Madhu Sudan was one of the discoverers of the PCP Theorem, which led to the modern theory of inapproximability; he now works at the intersection of computational complexity and information theory. Ronitt Rubinfeld is one of the founders of the field of program checking and together with Sudan and Goldwasser the field of property testing, while Scott Aaronson is interested in quantum complexity theory and in barriers to solving P versus NP and related problems. Parallel computing. Today's computers all contain multiple processing cores, and the number of processors per chip is expected to grow to hundreds or even thousands. How should these multicore chips be organized and interconnected? How should they be programmed? How should complex applications be solved in parallel? MIT's Theory of Computing group has long been leaders in providing answers to these fundamental questions that are built on theoretically solid foundations and grounded in provably correct and efficient algorithms. MIT research from the 1980's on VLSI theory and supercomputing led to hardwareefficient universal networks commonly used in computing clusters today, and it drove the technology of dataparallel computing. MIT research from the early 1990's on messagerouting technology led to today's efficient contentdelivery overlay networks on the Internet. MIT research from the middle 1990's on led to the provably good "workstealing" schedulers used today in many multithreaded programming systems. MIT research from the late 1990's produced the technology of efficient "cacheoblivious" algorithms which use cache hierarchies near optimally without any tuning parameters. MIT research from the past few years promises provably efficient transactionalmemory architectures, cacheconsistency protocols for "networks on a chip," and parallel algorithms for unstructured problems. CSAIL faculty working on theory of parallel systems include Prof. Alan Edelman, who devised numerous parallel algorithms for numerical linear algebra and is father of the MATLAB*P programming environment; Dr. Bradley C. Kuszmaul, who devised a provably efficient superscalar processor, developed cacheoblivious disk file systems, and designed the first virtualized transactional memory system; Prof. Tom Leighton, who pioneered VLSI theory and contentdelivery networks, discovered provably good algorithms for message routing, and devised workpreserving emulations of fixedconnection networks; Prof. Charles E. Leiserson, who invented systolic arrays, the retiming method for digitalcircuit optimization, the fattree interconnection network, and cacheoblivious algorithms and who led development of the Cilk multithreaded programming language; and Prof. Nir Shavit who invented counting networks, software transactional memory, and the topological approach to asychronous computability. Why Algorithms. In recent years, the amount of data on which computers are expected to operate has increased by several orders of magnitude, and it is no longer rare to come across data sets whose sizes are many terabytes. (Consider, for example, how one would use a computer to answer questions about the Internet, the human genome, or the sales logs of WalMart.) Furthermore, we are asking computers to perform more and more intricate analyses on this data, requiring them to answer such diverse questions as calculating the 3dimensional shape of a protein made up of many thousands of atoms, finding the most relevant web page to a query out of a pool of billions, or figuring out how best to allocate scarce resources among thousands of entities given only errorprone probabilistic information about the consequences of your decision. As the scope, difficulty, and importance of the problems that we pose to computers grow, it is crucially important that we devise new mathematical tools to attack them. The Algorithms group at MIT has long been at the forefront of this effort, with faculty ranking among the world experts in optimization, network algorithms, computational geometry, distributed computing, algorithms for massive data sets, parallel computing, computational biology, and scientific computing.
