Visions for Theoretical Computer Science

Visions for Theoretical Computer Science

The “vision nuggets” in this presentation are the outcomes of a workshop held May 17, 2008 at the University of Washington, and funded by the Computing Community Consortium. The goal of the workshop was to broad research themes within theoretical computer science (TCS) that have potential for a major impact in the future, and distill these research directions into compelling “nuggets” that can quickly convey their importance to a layperson.

The purpose of these nuggets is to help the CCC and others argue for the importance of long-term, fundamental computing research to a variety of audiences.  They are not  intended to say which areas within theoretical computer science are most important or should be funded. Many central research areas are not represented here at all, and this is due only to the limited size of our effort.

In the “Notes” section of each slide there is text summarizing and explaining the research direction depicted, as well as a list of contributors.  See the workshop wiki for more information:

The image on the title slide depicts “The Unity of TCS,” as described in the nugget below.

The Unity of TCS

Theoretical computer science has led the practical and technological development of the field since Turing conceived of a general purpose computer and its power and limits long before it existed. While far more diverse today, and serving numerous technologies and applications, TCS must stay united to flourish and be even more useful to the field.


Why should there be a theory of CS division at NSF? One can easily make the argument that CS has many research areas, each of which with a spectrum between theory and practice, and the division should according to these, with each area having a “practical” and “theoretical” component. Thus distributed computing should have its separate theory component, security/cryptography should have their, and so with quantum computing, programming languages, optimization, graphics, etc. etc. This viewpoint may allow for a small complexity theory program, whose practical value is doubtful, but seems to serve some higher purpose.

This viewpoint misses a central insight and huge opportunity — the remarkable unity of theoretical computer science. The culture and tradition of studying the power and limits of different computational models has created an extremely elastic language, fit to describe and analyze an ever increasing number of diverse technologies and applications. Indeed, TCS does have many subgroups of different interests, but these communicate and collaborate freely due to that language. And much more — ideas created in one often migrate to another, seemingly remote one, for dramatic effect and progress. There are many examples, but two will suffice here.

One is the notion of “superconcentrator”, developed in the 70s by Valiant to prove lower bounds on circuit size. 25 years later it inspired Spielman to give the first error-correcting codes of optimal parameters of rate and distance, with optimal (linear time) encoding and decoding procedures — a central problem of the field left open by Shannon 50 years earlier.

Another is the evolution of ideas between many subdisciplines, starting with cryptography and interactive and zero-knowledge proofs, in which removal of assumptions introduced multi-prover systems, in which program-testing ideas of random self-reducibility brought computational complexity to create proof verification in constant time, which impacted optimization by providing the first general method to prove intractability of approximation.

These migration of ideas between subcommunities needed the interaction and collaboration of theorists of all types, successfully facilitated in particular by the field’s leading conferences, FOCS and STOC.

Contributors and Credits

Avi Wigderson.  See also his talks:



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: