Skip to content

Computer Science (CSC)

The Computer Science program offers students a path to conduct research and receive honors. The Honors Research program includes three semesters of work beginning spring junior year. CSC 200H Undergraduate Problem Seminar is an intensive seminar on cooperative problem solving. Students explore the subdisciplines and research of computer science faculty learning research methodology and procedure. During their senior year, students independently study a topic of their choosing, conduct original research, and defend their findings in a final presentation.  

The degree of honors awarded (“honors in research,” “high honors in research,” or “highest honors in research”) is determined by the Computer Science faculty in consultation with the student’s honors committee.

Contact Information

Sara Klinkbeil
sklinkbe@cs.rochester.edu
Department of Computer Science
2515 Wegmans Hall
University of Rochester
Rochester, NY 14620

CSC Design Projects

Archive

CSC Archive
April 27, 2023 | 01:31 pm

Tracking Words

We present findings of a project that studies word meaning changes over time.

topics: Artificial Intelligence, Natural Language Processing,
CSC Archive
April 7, 2023 | 11:05 am

Sampling Over Union of Joins

To avoid the cost of join and union, given a set of joins, we study the problem of obtaining a random sample from the union of joins without performing the full join and union.

topics: Database Systems, Query,
CSC Archive
April 14, 2022 | 10:52 am

CBET Simulation on GPUs

Cross Beam Energy Transfer (CBET) is a simulation that models how intersecting laser beams share energy.

CSC Archive
April 14, 2022 | 10:47 am

Abstract Buffered Persistence with Buffered Pronto

A buffered variant of the Pronto persistence framework that provides a 1.26x to x6.77x times performance increase with potential data loss contained within 1ms.

topics: Buffered Persistence, Data Structures, Persistent Memory,
Community Engagement Archive
April 27, 2020 | 10:45 am

Verifying Lake Ontario’s Water Level

The Caldwell-Fay equation (2002) attempts to model what Lake Ontario’s current water level would be if dam construction had never taken place along the St. Lawrence Seaway (i.e. the natural hydraulic state of the lake).

Newly unearthed Lake Ontario data going back to the 1860s has been discovered, and we had the rare opportunity to be the first to digitize and publicly analyze it.

Since this data set predates any dam construction it actually captures the lake’s natural state. Therefore it can be used to verify Caldwell-Fey’s equation which is being used to govern the lake’s inflow and outflow rate on a daily basis.

CSC Archive
April 22, 2020 | 10:32 pm

Building a Web Application from Scratch

This semester I built an e-commerce application to sell my artwork and donate the profits to charity. I built a Node.js server using the Express framework and middleware to implement authentication, session management, and security features. The client side code uses the Jade templating language to pass run-time variables into static files which are rendered into HTML and passed to the browser. I designed a relational database to store the relevant information and built it out using MySQL.

Hyperion is a 3D visualization platform for optical design. It provides a fully immersive, and interactive 3D user experience. It enables the visualization of models of folded freeform optical systems. The frontend user experience is supported by the computational ray-tracing engine of Eikonal+, an optical design research software. We have built a cross-platform light-weight version of Eikonal+ that can communicate with any user interface. We have also demonstrated a prototype of the 3D user experience using a Hololens AR display.

CSC Archive
April 22, 2020 | 10:32 pm

Safe, Fast Sharing of Memcached as a Protected Library

Memcached is a widely used key-value (KV) store. It is structured
as a multithreaded user-level server, accessed over socket
connections by a potentially distributed collection of clients.
Because socket communication is so much more expensive
than a single operation on a KV store, much of the client
library is devoted to batching of requests. Batching is not
always feasible, however, and the cost of communication
seems particularly unfortunate when—as is often the case—
clients are co-located on a single machine with the server,
and have access to the same physical memory.

Fortunately, recent work on protected libraries has shown
that it is possible, on current Intel processors, to amplify access
rights quickly when calling into a specially configured
user-level library. Library instances in separate processes
can then share data safely, even in the face of independent
process failures. We have used protected libraries to implement
a new version of memcached in which client threads
execute the code of the server themselves, without the need
to send messages. Compared to the original, our new version
is both significantly simpler, containing 24% less code, and
dramatically faster, with a 11–56× reduction in latency and
a roughly 2× increase in throughput.


Return to the top of the page