Skip to main content

Graduate Programs

PhD Program

Student working on a robot

The Department of Computer Science is a research-oriented department with a distinguished history of contributions in systems, theory, artificial intelligence, and HCI. Over the past decade, a third of its PhD graduates have won tenure-track faculty positions, and its alumni include leaders at major research laboratories such as Google, Microsoft, and IBM.

Program Overview

Applicants with an undergraduate degree are admitted directly into the PhD program. Students receive an MS degree during their second year, and typically complete their PhD in a total of four to five years.

The program includes an option for a student to earn a joint PhD in computer science and another department.

During their first two years, students take courses in all areas of computer science, and complete the qualification requirements for one research area, in order to ensure technical depth.

A Dissertation Advisory Committee is formed during the first term of the third year. Students are required to submit and defend a thesis proposal during the second term of their third year. The committee conducts a formal review of the student's progress every six months. The final step is to write and defend a PhD thesis.

For application and financial support information see the applying to Rochester page.

Program Requirements

The PhD students are required to complete:

  • Six breadth courses
  • CSC 400: Problem Seminar
  • All of the qualifying requirements for one of the following areas:
    • Artificial intelligence
    • Human-computer interaction
    • Systems
    • Theory
  • PhD thesis proposal

For more information see the PhD requirements page.

Doctoral Study Areas


Student working in a lab

Have you ever wanted to make computers as smart as human beings? Are you interested in making robots that better serve people? Have you found current computing systems too difficult to use? Have you ever wanted to discover the valuable information hidden within big data? If so, then you should explore our artificial intelligence and human-computer interaction (AI/HCI) group. They have led the way in creating software that interacts with people in a way that feels natural.

Core efforts involve natural language processing, human emotions, and human perception of and reasoning about the natural world. The AI/HCI group specializes in several key areas:

  • Machine learning
  • Computer vision
  • Data mining
  • Natural language processing and understanding
  • Knowledge representation
  • Human-computer interaction
  • Robotics


Computer code

Interested in understanding what makes computing systems work? Ever wondered how to build software that scales up to serve people from all over the world? Want to build programming tools to make coding easier and more efficient? Do you want to solve the security challenges that have plagued computing? If so, our systems group is for you. The systems group performs cutting-edge research in many critical areas:

  • Operating systems
  • Compilers, program analysis, and program transformation
  • Parallel and distributed computing
  • Processor and memory architecture
  • Computer security

Our PhD students develop new ways to improve the performance and functionality of mobile, cloud, and multicore systems; devise novel and power-efficient processors and memory; understand the behavior of complex modern applications; and create new countermeasures to defeat sophisticated cyber-attacks. We disseminate our results to both academia and industry and contribute to major open-source projects.


Robot programming session

At its heart, computer science is about algorithms: using them to solve important problems, understanding the barriers to such solutions, and finding ways to bypass those barriers. Our theory group thus not only does foundational algorithms and complexity work but also brings that work and a theoretical perspective to problems from a wide range of exciting domains.

Examples of the questions we study are: How do you design a voting system that makes manipulation computationally prohibitive? From what distributions can we sample effectively? Can you keep information private while being able to extract useful information from it?

The theory group has several areas of particular focus:

  • Algorithms
  • Computational complexity
  • Computational social choice
  • Cryptography and security
  • Sampling, counting, and Markov chains

Summer Internships

Department pool party

The department believes that practical experience in industrial settings is crucial to motivating, guiding, and advancing research in computer science.

Many PhD students spend one or two summers interning at an industrial research laboratory. In recent years our students have interned at Google, Microsoft Research, Intel Research, Cadence, Nuance, and other leading research centers.

Internships can be found by responding to calls for interns distributed in the department, using faculty advisors' networks of personal contacts, and through the University's Career and Internship Center.

Both department support and research internships should be reported in your fall PAS materials.