Degree requirements for the Master's degree within the PhD program


Students working towards a PhD must first obtain their Master's Degree within the PhD program. The process leading to this degree is part of the PhD program and must not be confused with the Professional Master's Program offered by this department. To obtain a Master's Degree, students in the PhD program must meet the following requirements:

All students must complete an approved sequence of nine courses. An approved sequence consists of five core courses, and four electives. Students taking the Computational Math track are required to take a different set of core courses and will choose from a different set of electives. Click here for these and other specifics of the Computational Math track.

The Core

The set of core courses has been designed to bring sharp focus on the foundations to the program, guarantee sufficient breadth, and foster collegiality among our graduate students. Each student selects a set of five courses from the list below; the selection must include one course in Machine Learning, two courses in Systems, and two courses in Theory.

Core courses: Machine Learning

  • CMSC 35400 - Machine Learning
  • TTIC 31020 - Introduction to Statistical Machine Learning

Core courses: Systems

  • CMSC 23000 - Operating Systems (permission required)
  • CMSC 23700 - Introduction to Computer Graphics (permission required)
  • CMSC 32200 - Computer Architecture
  • CMSC 32630 - Advanced Implementation of Computer Languages
  • CMSC 33100 - Advanced Operating Systems
  • CMSC 33300 - Networks & Distributed Systems
  • CMSC 33520 - Data Intensive Systems
  • CMSC 33550 - Introduction to Databases
  • CMSC 33710 - Scientific Visualization

Core courses: Theory

  • CMSC 37110 - Discrete Mathematics. (Offered each autumn) Students are strongly encouraged to take this course in the first quarter of their studies. In addition to providing the mathematical foundations of computer science, including discrete probability, linear algebra, and asymptotic analysis, this course gives students the opportunity to practice the rudiments of mathematical thinking through rigorous problem solving. This course is a prerequisite to Algorithms.
  • CMSC 37000 - Algorithms (Offered each winter)


The list of courses that are available to serve as electives varies significantly year-to-year. The following courses are approved as electives for 2016-2017. To ensure sufficient breadth, students must take electives from either (a) two or more areas or (b) from the computational mathematics list.

Electives: Artificial Intelligence

  • CMSC 45300 - Machine Learning
  • TTIC 31020 - Introduction to Statistical Machine Learning
  • TTIC 31050 - Introduction to Bioinformatics and Computational Biology
  • TTIC 31120 - Statistical and Computational Learning Theory
  • TTIC 31040 - Introduction to Computer Vision
  • TTIC 31170 - Planning, Learning, and Estimation for Robotics and Artificial Intelligence
  • TTIC 31210 - Advanced Natural Language Processing
  • TTIC 31220 - Unsupervised Learning and Large-Scale Data Analysis

Electives: Computational Mathematics

  • CMSC 34900 - Solving PDEs using the FEniCS Project
  • CMSC 30900 - Mathematical Computation I: Matrix Computation

Electives: Systems

  • CMSC 33250 - Introduction to Computer Security
  • CMSC 33301- Topics in Systems  Intermittent Computing  Desktops to the Cloud
  • CMSC 33550 - Introduction to Databases
  • CMSC 33710 - Scientific Visualization
  • CMSC 33520 - Data Intensive Computing Systems
  • Any course from the systems core course list that is not used by the student to fulfill the core requirements.

Electives: Theory

  • CMSC 31150 - Mathematical Toolkit
  • CMSC 39600 - Topics in Theoretical Computer Science: Analysis and Approximation of Boolean Functions.
  • CMSC 38815 - Geometric Complexity
  • CMSC 38815 - Geometric Complexity
  • CMSC 39010 - Computability and Complexity Theory
  • CMSC 39010 - Computational and Metric Geometry
  • CMSC 35600 - Algorithms in Finite Groups
  • CMSC 38700 - Complexity Theory B

Topics courses can be used more than once, provided the material taught in the different offerings is distinct, and the course involves structured and graded work.

Students may petition the Graduate Committee to substitute other courses for those listed. Students are required to submit their petitions for substitution before they take a course with which they intend to fulfill the electives requirement.

Grade Requirements

There are specific grade requirements for both core courses and electives (described below). The spirit of these requirements can be summed up by the following motto: a student must demonstrate proficiency in all areas and excellence in at least one area.

The minimum formal requirements for the core courses ("Ph.D. Pass") are the following: Students are required to complete the five core courses with a grade point average (GPA) of at least 3.25 in the five core courses. In computing the GPA, A=4, B=3, and a + or a - counts as .3 of a point. Note that for the core courses, students who significantly outperform even the typical "A" students may receive a grade of "A+" (recorded internally by the CS Department Student Representative--the University does not officially grant the grade of A+.) So, for instance a student with grades A+, B+, B+, B-, B- in the five core courses has a GPA of 3.26 and thus satisfies the minimum GPA requirement, as does a student with grades of A+, A, B+, B, and C-. In the graduate program grades below C- are not passing grades.

Students must complete their electives with a grade of B or better in each course.

The previous rules, that apply to the classes before the cohort first enrolled in Summer or Autumn 2015 can be found here.

Students who fail to meet the core course requirements stated in the preceding paragraph may continue on to write a master's paper and complete a master's degree, if they meet the following requirement ("Master's Pass"): complete all the five core courses by the end of the spring quarter of the second year with a grade of at least C- in each core course and with a grade point average (GPA) of at least 3.00 in the five core courses. Such students will be supported for at most one quarter of their third year.

Students who do not meet the Ph.D. Pass requirements for these courses cannot continue their studies beyond autumn quarter of their third year. Students who do meet these minimum requirements will not automatically be allowed to continue after their third year; the faculty will decide continuation based on the student's perceived capacity to perform Ph. D. level independent research in a specific area.

Master's Paper and Exam

Each student must complete a Master's paper that must demonstrate knowledge of a particular area of computer science, including in-depth familiarity with the related literature.

Students must give public presentations of their Master's papers, followed by a private exam. At the public presentation and in the private exam, students must be able to give detailed answers to questions about the work described in their paper.