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.
|