Research Opportunities

Research positions can be challenging to get, and the Meta-URAs wanted to provide information of how to get your foot in the door for  the labs of specific professors.  We have worked with several professors to create a list of any prerequisites needed to be able to start researching. As we get more information from professors, we will add to this list. 

Opportunities within the department:

Ugur Cetintemel: if you are interested in doing a project on the broad topics of data science or engineering, will work with you to try to identify a project that matches your interests and background. 

Eugene Charniak:  Take CSCI1460 ( Computational Linguistics).

Tom Doeppner:  Take CSCI1380 (Distributed Computer Systems) or CSCI1690 (Operating Systems + Laboratory)

Maurice Herlihy: Having taken CSCI176 (Multiprocessor Synchronization) is a plus, but not required.

Jeff Huang: My group does research in human-computer interaction, from a data perspective. We make things, described on our research group website. Start here to find out about our research group's research experience and expectations.

Sorin Istrail: Take CSCI1820 (Algorithimic Foundations of Computational Biology) and have done very well

Seny Kamara: For cryptography-focused projects: CS151 or Math158. For systems-focused projects: CS166. Some projects require both so CS151 and CS166 is useful. If you haven't taken these courses but have background in other areas (e.g., AI, vision, data management, algorithms, statistics etc.) and are interested in privacy, surveillance, fairness, anonymity, crypto-currencies and other ways CS can impact society come talk to me. Maybe we can find an interesting way to apply your skillset to our problems.

Philip Klein: Working on algorithms for hard problems in road networks, such as traveling salesman and facility location.  Summer research opportunities available to those who take Optimization Algorithms for Planar Graphs (CSCI2500-B) in the spring. The prerequisite for that seminar is an algorithms class such as Design and Analysis of Algorithms (CSCI1570), taught in the fall.  

Tim Kraska: That highly depends on the project. In general, he would recommend at least one system and one ML course. For example, to work with him on the intersection of machine learning and system (e.g., the VizDom projecT), CSCI1420 (Machine Learning) and CSCI1270 (Data Management Systems),  CSCI1380 (Distributed Systems) and CSCI176 (Multiprocessor synchronization) are highly recommended. To work with him on home automation related topics, CSCI1300 (UI) and CSCI1951A (Data Science) are good to have. 

Shriram Krishnamurthi: Take CSCI1730 (Programming Languages) and ideally CSCI0170 or CSCI0190

David Laidlaw: Learn about David’s group's most recent research involving virtual reality, scientific visualization, and scientific computing via the publications at Take CSCI 1951J this Fall, which will teach you how to do Interdisciplinary Scientific Visualization (and peruse its website or that of CS237, esp. the “calendar” page).  Come to research group presentations (free lunch) Mondays at noon starting in late September in CIT 316; email to get on the mailing list for those meetings.

Michael Littman: For students interested in end-user programming of household devices and reinforcement learning, he makes an effort to find projects that match their experience and ability ranging from design to programming to theory.

Steve Reiss: None - anyone can work with him. 

Roberto Tamassia: Take CSCI1660 (Computer Systems Security) or CSCI1951-E (Computer Systems Security: Principles and Practice)

Stefanie Tellex: Check this website for more information. 

James Tompkin: A fascination with visual computing, especially cameras. Requirements vary by project; most projects involve computer vision (e.g., CSCI1430, CSCI2951I) and/or computer graphics (e.g., CSCI123, CSCI2240), and often include components of interaction (e.g., CSCI1300) and machine learning (e.g., CSCI1420). Strong programming skills with a focus on performance (e.g., GPUs)

Eli Upfal: Take CSCI1550 (Probability and Computing: Randomized Algorithms and Probabilistic Analysis) and have done well. Most likely also be a joint Math/CS or Applied Math/CS concentrator. 

Andy van Dam: Having taken CSCI0150 is a plus, otherwise have a strong background in object oriented software.  The lab focuses on pen-and-touch computing on tablets and very large interactive whiteboards

Stan Zdonik: Take CSCI1270 (Database Management Systems)

Daniel Ritchie: Check this web page for more information.

Opportunities outside the department:

Thomas Serre (CLPS department): For students interested in computational neuroscience as well as machine and biological vision, he will try to find a project relevant to the student's interests. Preferably have taken CLPS1520  or CSCI1430 (Computational Vision) for vision projects and CSCI1420 (Machine Learning) for machine learning related projects. The lab also develops automated tools for the processing of large amounts of video data (with applications to automated movie annotation for decoding brain states and automated behavioral analysis in rodent, birds and children). Some web and python development skills are needed and/or some experience with deep learning


There are three ways to do research: