CS Logo      
space
bar Information bar Events bar Admissions bar People bar Courses bar DegreePrograms bar Research bar Publications bar
space
design
space
Subareas
space
Home » Degree Programs » Undergraduate Program » CS Major
space

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.

space
bar
bar
[ About Us · Contact Us · Feedback · Site Map ]