The Department of Computer Science was founded in 1974 as a PhD-only department by Jerry Feldman, a professor who was recruited from Stanford University to start the department. In 1995, the department added a bachelor’s degree and in 2015 a more concertedrecruitment effort began for the computer science masters program.Today, the Department boasts over 600 undergraduates, 40+ Masters, and 70+ PhD students with research ranging from parallel and distributed systems, HCI, AR/VR, artificial intelligence, security, and cryptography.
Department of Computer Science
2513 Wegmans Hall
University of Rochester
Rochester, NY 14620
CSC Design Projects
- Abstract Buffered Persistence with Buffered ProntoA 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.
- Augmented Transactional MemoryOne or two sentence description of the project.
- Building a Web Application from ScratchThis 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.
- CBET Simulation on GPUsOne or two sentence description of the project.
- Hyperion: A 3D Visualization Platform for Optical Design of Folded SystemsHyperion 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.
- Safe, Fast Sharing of Memcached as a Protected LibraryMemcached 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.
- Translation Validation for the QBE Compiler BackendA translation validation tool for a small compiler backend called QBE. The tool can identify invalid intermediate language transformations and optimizations.
- Verifying Lake Ontario’s Water LevelThe 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.