Department of
Computer Science

Graduate Programs

Masters Program in Computer Science

The master’s program offers students a high level of flexibility. Students may focus on one area of computer science, or take courses across the breadth of the field. The degree may be completed on a full-time or part-time basis.

For students with an undergraduate degree in computer science or a closely related field, the requirements can usually be completed over the course of three semesters.

We welcome applications from students who did not major in computer science but whose undergraduate work demonstrates strong technical skills.

This program is for students who intend to complete their studies at the University of Rochester with an MS degree. Students with an undergraduate degree who wish to get their PhD in computer science at Rochester should apply directly to the PhD program.

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

Program Requirements

Students must complete a minimum of 30 credits. Of these credits:

MS students must pass a comprehensive examination (or essay), typically in the last semester before graduation.

Some students may need to take one or more 100 or 200-level prerequisite courses. These courses are not counted toward the 30 credit requirement and are typically taken by students who do not have an undergraduate degree in computer science.

Courses offered by departments other than computer science but that are relevant to the degree may be included in the 30 hours, subject to approval of our graduate coordinator. In any case, at least 18 hours of the 30 must be courses offered by the Department of Computer Science.

Students must maintain a GPA of 3.0 by the end of their second semester and throughout the rest of their time in the program, and must obtain a least a 2.0 in each course that counts toward the 30 credit hours.

Sample Programs of Study

These programs are illustrative examples; students may take any program meeting the general requirements above. The following examples are outlined below:

Programming Languages and Computer Systems
CS 453: Dynamic Languages and Software Development
CS 455: Software Analysis and Improvement
CS 456: Operating Systems
CS 457: Computer Networks
CS 458: Parallel and Distributed Systems
CS 484: Advanced Algorithms
CS 572: Seminar in Programming Languages
CS 495: Independent Research

Algorithms and Complexity 
CS 484: Advanced Algorithms
CS 486: Computational Complexity
CS 487: Advanced Modes of Computation
CS 444: Logical Foundations of Artificial Intelligence
CS 446: Machine Learning
CS 574: Seminar in Theory of Computation
CS 577: Optimization and Machine Learning
CS 495: Independent Research

Computer Architecture
CS 484: Advanced Algorithms
ECE 404: High Performance Microprocessor-Based Systems
CS 453: Dynamic Languages and Software Development
CS 455: Software Analysis and Improvement
CS 458: Parallel and Distributed Systems
ECE 465: Performance Issues in VLSI/IC Design
CS 573: Advanced Topics in Memory Systems
CS 495: Independent Research

Artificial Intelligence and Machine Learning
CS 440: Data Mining
CS 444: Logical Foundations of Artificial Intelligence
CS 446: Machine Learning
CS 448: Statistical Speech and Language Processing
CS 449: Computer Vision
CS 484: Advanced Algorithms
CS 577: Optimization and Machine Learning
CS 495: Independent Research

Natural Language Processing
CS 444: Logical Foundations of Artificial Intelligence
CS 446: Machine Learning
CS 447: Natural Language Processing
CS 448: Statistical Speech and Language Processing
CS 460: Dialog Systems
CS 484: Advanced Algorithms
LIN 461: Phrase Structure Grammars
CS 495: Independent Research

Human Computer Interaction
CS 410: Web Programming
CS 412: Human Computer Interaction
CS 440: Data Mining
CS 571: Probabilistic Theories of Cognitive Processing
CS 575: Seminar in HCI
BCS 511: Behavioral Methods
STT 422: Design of Experiments
CS 495: Independent Research