Research in Computer Science at Cornell

We believe that the information revolution is transforming universities, because it goes to the heart of what universities are about: the creation and dissemination of knowledge. A few universities will be leading the country and the world into this information-based future.

Computer Architecture and VLSI

Research in architecture and VLSI is part of the Computer Systems Laboratory. Computer-systems research at Cornell encompasses both experimental and theoretical work growing out of topics in computer architecture, parallel computer architecture, operating systems and compilers, computer protocols and networks, programming languages and environments, distributed systems, VLSI design, and system specification and verification.

Artificial Intelligence

Understanding intelligence and creating intelligent artifacts, the twin goals of artificial intelligence (AI), represent two of the final frontiers of modern science. Several of the early pioneers of computer science, such as Turing, Von Neumann, and Shannon, were captivated by the idea of creating a form of machine intelligence. The questions and issues considered back then are still relevant today, perhaps even more so.

            Research in AI at Cornell covers a wide range of topics, including decision theory, knowledge representation, machine learning and data mining, natural-language processing, planning, reasoning under uncertainty, search, and vision. Our research program embraces both theoretical and experimental aspects—a particular strength of the department is in compute-intensive approaches to AI problems. Given the complexity of many of the basic questions in AI, our research often transcends traditional scientific boundaries. We are actively pursuing connections to other disciplines, such as biology, economics, linguistics, operations research, physics, and psychology. The department is also one of the main participants in the university-wide Cognitive Studies Program (COGST) and in the IISI, in collaboration with the AFRL.

Computational Biology

The recent completion of the Human Genome Project underlines the need for new computational and theoretical tools in modern biology. The tools are essential for analyzing, understanding, and manipulating the detailed information on life we now have at our disposal.

            Problems in computational molecular biology range from understanding sequence data to the analysis of protein shapes, prediction of biological function, study of gene networks, and cell-wide computations.

            Cornell has a university-wide plan in the science of genomics; CS is playing a critical role in this initiative. CS researchers are engaged in a broad range of computational-biology projects, from genetic mapping to advanced sequence analysis, fold prediction, structure-comparison algorithms, protein classification, comparative genomics, and long-time simulation of protein molecules.

Database Systems

The Cornell Database Group is exploring issues related to all aspects of data management. Our interests range from developing efficient algorithms for very large data sets to building large-scale systems for new and emerging applications.

            In the Internet data-management project, we are building a system for querying semistructured Internet sources. In the Amazon project, we are developing a system and associated algorithmic techniques for high-speed data streams. In the Pepper project, we are developing a query layer for large-scale peer-to-peer systems. In the Cougar project, we are developing database technology for sensor networks. In the Himalaya data-mining project, we are exploring new directions in data mining. We also collaborate with researchers in related areas such as theory, artificial intelligence, and systems.

Languages and Compilation

Cornell has particular strength in programming languages and compilation, with more than eight faculty members and twenty-five graduate students working in the area. Our research ranges from theory, including logics and semantics, to practical engineering issues in verification, optimizing compilers, security, and run-time systems. In addition, there are strong synergies within the languages and compiler groups, and exciting connections with other subdisciplines. For instance, Robert Constable’s Nuprl system has been used to verify the correctness of the optimized group-communication protocols in Ken Birman’s Ensemble system. As another example, Greg Morrisett and Andrew Myers have developed secure programming languages, such as Typed Assembly Language (TAL) and Java Information Flow (JIF), that are used to ensure the safety and security of networked information systems.

Computer Graphics

The Cornell University Program of Computer Graphics (PCG), established in 1974, is an interdisciplinary graphics center dedicated to the development of interactive graphics techniques in a variety of applications.

            The original research objective was to develop and improve techniques for interactive graphical input and display, and to demonstrate the use of these techniques in research applications. Currently the PCG is also involved with projects for scientific visualization and designing future software and hardware for graphics-workstation environments. In addition, we have recently established a very sophisticated light-measurement laboratory for radiometric measurements.

            Well-known past topics include polygon clipping, hidden-surface algorithms, texturing, spatial and temporal aliasing problems, geometric modeling, parametric-surface descriptions, and color science.

            Current research focuses on three-dimensional modeling of very complex environments and algorithms for realistic image synthesis. A modular test bed, which is sufficiently flexible to evaluate different image-synthesis techniques, has been created. Research is now being conducted on light-reflection models, methods for determining the interaction between diffusely reflecting surfaces, techniques for improving the computational efficiency of ray-tracing, parallel-processing strategies, microgeometry surface modeling, motion control, dynamics, constraint modeling, perceptual issues in graphics, and other problems related to complex modeling and realistic image displays.

Operating Systems, Networks, and Distributed Computing

The Operating Systems group at Cornell examines the design and implementation of the fundamental software systems that comprise our computing infrastructure. Our interests span from the very small, including the smart-card systems that fit on a postage stamp–sized die, to the very large, including the wide-area distributed systems that span the globe.

            Overall, we are concerned with fundamental questions in systems design. How should our computing infrastructure be structured to address the diverse challenges posed by ubiquitous computing, sensor networks, wide-area distributed computing, and large-scale Web services? What mechanisms and policies are required for a trustable computing infrastructure? What kind of techniques can we use to measure and characterize Web- and Internet-based systems, and how can we apply the lessons learned to the construction of next-generation networked systems?

            To answer essential questions like these, there are many projects currently underway on diverse topics, including peer-to-peer systems, operating system services for ad hoc and sensor networks, fault-tolerant communication protocols, application of formal techniques to Web service construction, secure smart-card operating systems, extensible operating systems, intrusion detection, and secure networked service design, among many others.

Scientific and Parallel Computing

Scientists and engineers rely more than ever on computer modeling and simulation to buttress their experiments and designs. From prevention of metal fatigue in engines to the smart design of new medicines, today’s scientific and technological advances would be impossible without the combination of powerful computers and the powerful algorithms running on those computers.

            The scientific computing group at Cornell develops the algorithms that underlie simulation and optimization. Matrix computations are a recurring theme in our research. The focus is on efficient and robust algorithms with an eye toward modern high-performance parallel and multithreaded architectures.

Security

Cornell is a leader on a broad range of research issues related to computer security. Under the aegis of the Information Assurance Institute, which is located within CIS, we tackle the fundamental problem of ensuring the security and reliability of our global critical-computing infrastructure.

            Many active research projects are aimed at developing a science-and-technology base that enhances information assurance and ensures the trustworthiness of networked information systems. These project areas range from system and network security to reliability and assurance, spanning language-based security, secure online services, advanced type systems for mobile code, static information-flow control, policy specification and enforcement, and proof carrying code.

            Overall, the breadth and depth of the projects undertaken at Cornell are a direct result of the well-integrated, diverse, and collegial environment that CS provides. Our work draws its strength from the synergy between the groups working on security, programming languages, operating systems, logic, and formal methods.

 

Theory of Computing

The theory of computing is the study of efficient computation, models of computational processes, and their limits. It has emerged over the past few decades as a deep and fundamental scientific discipline. It is a young science, with many of the central questions still unanswered; and it is a science poised to have considerable impact on current issues in the development of systems and software, the nation’s network and communications infrastructure, and the physical and biological sciences. At Cornell, we are proud of our position as a world leader in the ongoing development of theoretical computer science.

            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. Our faculty and students are actively involved in areas such as the design of fundamental algorithms, combinatorial optimization, machine learning, computational complexity theory, computational algebra, logic in computer science, computational geometry, and applications to verification, reliable systems, data mining, information science, and the computational 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 members in both theoretical and applied areas, and work on problems at the critical juncture of theory and applications.