Research is an important part of computer science. Here, students can learn about current research in the department as well as about fellowships which can help fund research and/or graduate school.


A senior thesis in Computer Science begins with an independent study and can be submitted for the honor's designation. 

Faculty Research

Computer Science majors, especially those planning to go on to graduate school, typically do an undergraduate research project, usually at the honors level. Most of these projects have been as part of part the active faculty research programs in Artificial Intelligence, Distributed Systems, Intelligent Agents, and Jazz a la Computer. Occasionally, students make arrangements to pursue other subjects as individual study projects.

Algorithms - Dan Sheldon

The primary goal of Professor Sheldon’s research is to develop algorithms to understand and make decisions about the environment using large data sets. He seeks to answer foundational questions (what are the general models and principles that underlie big data problems in ecology?) and also to build applications that transform large-scale data resources into scientific knowledge and policy. Some examples of his work include: spatial optimization to conserve endangered species, continent-scale modeling of bird migration, and biological interpretation of weather radar data across the US. Methodologically, Professor Sheldon’s primary interests are machine learning, probabilistic inference, and network modeling. His work has contributed broadly applicable new approaches for reasoning about aggregate data in probabilistic graphical models, and for optimization of diffusion processes in networks.

Intelligent Information Retrieval - Lisa Ballesteros

Research in the area of Cross-language Information Retrieval is developing technology that will enable us to build systems that allow a person to query in one language (e.g. English) and retrieve relevant documents in other languages (e.g., Spanish). The most recent approach results in very effective cross-language retrieval using translation via a machine readable dictionary and statistical techniques for reducing the effects of translation ambiguity. The statistical techniques are based on analysis of word co-occurrence in text.

See more project information on Lisa Ballestero...

Software Process and Software Design - Barbara Lerner

Software engineering focuses on issues of scale: how to build large pieces of software, requiring multiple people working together, resulting in software that is correct, reliable and efficient, and doing so while staying within an organization's schedule and budget. Barbara Lerner's research investigates two subareas of software engineering: software process and software design.

A software process defines how multiple people and tools cooperate to achieve a task. Besides software engineering applications, software processes can be used in diverse fields, such as describing medical tasks involving the cooperations of doctors, nurses, technicians, pharmacists and others in carrying out a procedure such as chemotherapy for a patient. Other applications of software processes are in negotiation and arbitration, online auctions and scientific workflow.

Barbara also studies software design, the phase of software development that bridges the gap between software requirements, what a client wants software to do, and programming. She is particularly interested in developing tools and techniques that ensure that a design is correctly transformed into code.

See more project information on Barbara Lerner...

Computational Geometry - Audrey St. John

Research in computational geometry broadly addresses problems with a geometric component (e.g., anything with coordinates). Audrey St. John's particular focus is in an area called "Rigidity Theory" -- we study properties of objects that can inform us about their rigidity or flexibility. While most of our approaches are theoretical in nature, we consider problems that are strongly rooted in applications coming from biology and CAD (Computer Aided Design). Can we give insight into a protein's flexibility and motion, providing an aid to drug design? Can we help the engineer to know when a design is completely rigid (e.g., guaranteeing a structure will be stable)? Rigidity Theory research addresses such problems by formulating their theoretical foundation in order to develop efficient algorithms.

See more project information on Audrey St. John...