Department Research Areas Overview The Department of Computer Science is world renowned for its research.
Originally, departmental research focused on the more theoretical aspects
of computer science. However, during the last several years the department
has grown dramatically and has moved decisively into more applied areas.
It is difficult to classify faculty research interests. Collaboration
among different areas is rapidly becoming the rule rather than the exception.
Despite this, computer science at Cornell has maintained its distinctive
style and coherence. The following list of research areas summarizes the
research strengths of the department. Algorithms Several faculty members are studying various combinatorial algorithms
that are used to solve sparse matrix problems arising in numerical analysis.
In addition, there is a large body of research in efficient sequential
and parallel algorithms, both deterministic and randomized, for various
algebraic and combinatorial problems. Architectures and VLSI Work in these areas includes the application of computational complexity
and algorithm design methodology to VLSI computing environments. There
is also considerable interest in systolic arrays and other novel computer
architectures that are (or will be) realizable in VLSI. Artificial Intelligence The incorporation of AI techniques in some of the larger projects (NuPRL,
Robotics, etc.) has been going on for some time. Recently, faculty members
whose primary research is AI itself have been hired. Research areas include:
machine learning, motion planning for robotics, computer vision, and automated
theorem proving. Concurrency and Distributed Computing Several researchers are investigating theoretical issues in concurrent
programming with particular attention focused on distributed systems and
fault tolerance. The ISIS project is concerned with the synthesis of resilient
distributed structures, composed of fault-tolerant data objects or programs.
The RR project concerns real-time reliable (distributed) systems for fault
tolerance. Database Systems and Operating Systems Various questions concerning performance evaluation are being investigated
by faculty members. Evaluation tools are being developed to assist the
designers of database machines while the techniques of operations research
are being applied to model a wide range of operating system interactions. Information Organization and Retrieval Current theoretical work is being done in the areas of file organization
and information retrieval algorithms, using concepts from mathematics,
computer science, and linguistics. The material under study includes:
automatic indexing techniques; automatic classification; interactive search
and retrieval methods; retrieval evaluation; automatic thesaurus construction
techniques; and dynamic file management, including collection, growth
and retirement. Modeling and Simulation  |
Researchers in this area are interested in expanding the science and engineering base that supports electronic representation, reasoning and manipulation of 3-dimensional objects and their dynamic behavior. A general-purpose, model-driven simulation system has been developed which can be used in the design and analysis of complex mechanisms and assemblies. Currently, an environment is being designed that will automate many of the steps needed by users to create their own simulators. This design will include the following model system for representing the quantities and laws that describe physical behaviors in a given analysis model: an analysis specification system, or language for defining the behavior of a simulation in terms of laws and quantities, a scene editor, and a low-level interface for integrating existing modules such as numerical packages or finite element codes. Another crucial area of research is the development of robust, geometrical algorithms.
geometrical algorithms. Numerical Analysis Research is done in the field of matrix computations and numerical optimization.
In the matrix computation area, the Cornell Supercomputing Facility is
being used to try out various parallel algorithms for eigen-value and
least squares problems. Graph methods for handling matrix sparsity is
another area of activity and reflects the increasing overlap of numerical
analysis and combinatories. There have been several successful implementations
on the University hypercubes. Programming Environments Many disciplines face the problem of manipulating complex conceptual
objects: computer programs, proofs of theorems, spread sheets, textual
documents, etc. The goal of research in this area is the development of
interactive tools that increase productivity by providing meaningful domain-specific
operations for creating, modifying, and maintaining such complex objects.
We call these editing systems language-based environments and have been
working to create the Synthesizer Generator, a language-independent generator
of such systems. The Generator is used locally for creating programming
environments and environments for formal reasoning, and for studying the
generation of graphical interfaces. It is used at approximately 150 sites
worldwide. Programming Languages and Methodology The issues of semantics and type theory are central to the work of several
faculty members. Proofs of program correctness and its influence on program
development are being studied for concurrent as well as sequential programs.
The Program Refinement Logic (PRL) system supports the interactive development
and verification of programs specified in a top- down fashion using constructive
mathematical proofs. The latest version of the PRL system, called NuPRL,
has been used to develop an extensive library of programs using this methodology.
Another language, SEEK, is being developed for knowledge-based signal
processing, especially electrocardiogram interpretation. Finally, compiler
work is being done that centers on the extraction of parallelism using
percolation scheduling. Robotics This area of research encompasses both practical engineering work and
theoretical work in algorithms. Initial activity has been in the area
of high-level motion planning. Work is also proceeding on the design and
implementation of a robotics language that permits one to reason about
objects in terms of their three-dimensional representations. The representation
must allow the user to quickly design or specify an object, assembly,
or task. Scientific Computing Research is done by matrix computations, optimization, and complexity
theory (as it applies to scientific computation). The emphasis is on the
design and analysis of high performance methods for parallel computers.
This leads to many input side issues in combinatorics, systems theory
and compilers. Theory of Computation This area is concerned with the fundamental mathematical problems of
computer science. Specific topics include computational complexity, analysis
of algorithms, formal languages and automata, semantics, and program verification.
Computational complexity had always been a major research interest at
Cornell, and current work is concerned with the intrinsic difficulty of
computing problems and the relationship among various measures of computational
and structural complexity, such as run time, space, and program size.
|