Master’s 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:
- All courses must be 400/500-level three- or four-credit courses
- Up to six hours can be from research credits, supervised by a faculty member
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 the graduate education committee. 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
- Algorithms and Complexity
- Computer Architecture
- Artificial Intelligence and Machine Learning
- Natural Language Processing
- Human Computer Interaction
Programming Languages and Computer Systems
CSC 453: Collaborative Programming and Software Design
CSC 455: Software Analysis and Improvement
CSC 456: Operating Systems
CSC 457: Computer Networks
CSC 458: Parallel and Distributed Systems
CSC 484: Advanced Algorithms
CSC 572: Seminar in Programming Languages
CSC 495: Independent Research
Algorithms and Complexity
CSC 484: Advanced Algorithms
CSC 486: Computational Complexity
CSC 487: Advanced Modes of Computation
CSC 444: Logical Foundations of Artificial Intelligence
CSC 446: Machine Learning
CSC 574: Seminar in Theory of Computation
CSC 577: Optimization and Machine Learning
CSC 495: Independent Research
Computer Architecture
CSC 484: Advanced Algorithms
ECE 404: High Performance Microprocessor-Based Systems
CSC 453: Collaborative Programming and Software Design
CSC 455: Software Analysis and Improvement
CSC 458: Parallel and Distributed Systems
ECE 465: Performance Issues in VLSI/IC Design
CSC 573: Advanced Topics in Memory Systems
CSC 495: Independent Research
Artificial Intelligence and Machine Learning
CSC 440: Data Mining
CSC 444: Logical Foundations of Artificial Intelligence
CSC 446: Machine Learning
CSC 448: Statistical Speech and Language Processing
CSC 449: Computer Vision
CSC 484: Advanced Algorithms
CSC 577: Optimization and Machine Learning
CSC 495: Independent Research
Natural Language Processing
CSC 444: Logical Foundations of Artificial Intelligence
CSC 446: Machine Learning
CSC 447: Natural Language Processing
CSC 448: Statistical Speech and Language Processing
CSC 460: Dialog Systems
CSC 484: Advanced Algorithms
LIN 461: Phrase Structure Grammars
CSC 495: Independent Research
Human Computer Interaction
CSC 410: Web Programming
CSC 412: Human Computer Interaction
CSC 416: AR/VR Interaction Design
CSC 440: Data Mining
CSC 460: Technology and Climate Change
CSC 571: Probabilistic Theories of Cognitive Processing
BCS 511: Behavioral Methods
CSC 495: Independent Research