Computer science is a vibrant field, full of potential. Not only are new products emerging every day, the demands of the field create new computational problems that need solution, many of them highly complex. Since the computer scientist is needed when the computational problem is hard, this means that our field is likely to be in demand for the foreseable future.
Many areas offer problems of sufficient complexity and importance to warrant the attention of the theoretical computer scientist. Some of these currently lack the precision that usually attracts theoreticians but, through joint work with experimentalists, this can change.
A list of research areas that may attract theoreticians is given below. It is not intended to be complete nor the description of a research agenda. Our community is rich in diversity which should continue to be encouraged. Together we can come to agreement on areas that have high potential, bearing in mind, of course, that it is undesirable to invest too fully in too few areas, especially areas that have received a great deal of attention in the past.
Most traditional areas of computer science will continue to evolve and require the attention of theoretical computer scientists.
New areas will emerge that are hard to predict. For example, ubiquitous and mobile computing in which many users migrate their work and attention to different computers will offer many challenges including the obvious one of resource allocation. Quantum computing has the tantalizing prospect of being a new and highly parallel computing model that may be used to solve very hard problems in an instant.
Computer science is a thriving area that will continue to thrive for decades to come. The role for the theoretician in computer science is to create new computational models and to explore the power and limits of these models for important problems. As long as the computational problems are very hard there is a role for the theoretician.