The sections below define the requirements set forth by the Department of Computer Science for a student to earn a graduate degree in computer science, and to remain in good standing in the graduate program. These requirements are designed to allow students the flexibility to create programs of study that match their particular interests and needs, with the recognition that computer science is an evolving and interdisciplinary field. However, each student’s program of study and progress toward the degree must meet these minimum requirements. The Director of Graduate Studies (DGS, email@example.com) is responsible for monitoring satisfactory progress toward the degree and certifying completion of degree requirements to the Duke Graduate School as a representative of the Faculty of Computer Science.
Besides the requirements of the Department presented here, there are other requirements and regulations mandated by the Graduate School, many of which are not presented here. They include, for example, specific deadlines to file to receive a degree in a given semester, as well as rules governing language proficiency, minimum GPA, and minimum and maximum periods of residency at Duke. In the event that anything you read in these pages conflicts with Graduate School policies, then those policies shall apply at the discretion of the Dean of the Graduate School.
All MS students have these three requirements in common:
- earn a minimum of thirty units of graduate credits,
- be registered full-time for three semester, and
- complete a master's exam.
How the student chooses to complete those requirements, however, is a choice the student may make. The department sets the default choice as Course-only; students confirm this option or change it by contacting the GPC (Grad Program Coordinator) before the beginning of their third semester. A student can switch to a different option with the approval of her/his advisor and the DGS until the end of drop/add of the third semester. The available options are:
If choosing the project/thesis option, the student must at the same time also:
- identify a faculty member who agrees to serve as an advisor and declare him or her in Gradcentral, and
- submit a one-page description in Gradcentral of the research topic on which the faculty member has agreed to advise the student.
The advisor must be a full member of the Graduate Faculty who holds a primary or secondary appointment in Computer Science. If choosing the course-only option, the student will be appointed an advisor (see below under Master's Exam Requirements.)
The concentrations will still require 30 units of coursework that satisfy the constraints for the MSCS program outlined above. In addition to the general MSCS requirements, these 30 units will have to satisfy the concentration requirements that we outline below. Students wanting the (optional) concentration will have to satisfy the relevant requirements, or consult with the DGS for substitutions. In all cases, at the end of the first semester, students are required to get their course plan approved by the DGS. In consultation with relevant faculty, they will ensure the set of courses are compliant with the requirements for the concentration. We highly recommend students come up with a plan for courses and portfolio by the end of the first academic year, and run it by the DGS office for feedback.
- at least eighteen credits of graduate CS coursework
- at least six credits of coursework outside CS, drawn from a field related to CS or to the student's area of concentration
- at least six credits of approved course electives
At least six of the thirty credits must be earned by taking courses that have a significant course-project component (at least 30% of the total weight). All courses have to be regular graded courses. A student must earn a grade of B- or higher in a course for it to be counted toward the MS degree.
Project or Thesis
- at least twelve credits of graduate CS coursework
- at least six credits of coursework outside CS, drawn from a field related to CS or to the student's research
- at least six credits of approved course electives
- at most six credits of (ungraded) research, which count toward the 30 required credits, but allow time in the student's schedule to work on his or her project or thesis research
All credits except the ungraded research must be regular graded courses. In all cases except for courses taken in place of ungraded research, a student must earn a grade of B- or higher in a course for it to be counted toward the MS degree.
Each student must pass a final exam administered by a committee. The nature of the exam and the committee depends on the option the student has chosen.
Each student will take an oral exam, typically 15-20 minutes long, administered by a three-person examining committee appointed by the Department Chair.
The exam is based on a portfolio containing:
- all student papers, project reports, and slides from oral or written presentations, both from project-oriented and other courses
- material created by the student as a research or teaching assistant
- a written description of an internship project, including a discussion of how the experience relates to the student's field and a summary of what the student has learned (if the student undertook an internship)
- an updated resume
- a recent transcript
Each student must submit an electronic copy of the portfolio through Gradcentral at least two weeks prior to the final exam date, which will be set by the DGS office. The examining committee will ask questions during the exam based on the portfolio.
Each student must complete a research project or thesis under the supervision of the faculty advisor and a supervisory committee. The student must prepare a written project report or thesis, as applicable, and defend the work in a public presentation before the committee. The committee votes to accept the work as a project if the student has chosen the project option, to accept the work as a thesis if the student has chosen the thesis option, or to fail the defense.
The thesis option also requires a written thesis document, which must be formatted and submitted for publication to the Graduate School in accordance with their regulations in the Guide for the Electronic Submission of Theses and Dissertations.
The student must submit the project report or thesis to each committee member at least two weeks prior to the defense through Gradcentral; modifications suggested by the committee must be incorporated both within thirty days after the defense and before the semester deadline for the degree.The supervisory committee must include, besides the advisor, at least two other members of the Graduate Faculty. At least two committee members must have appointments in Computer Science. The supervisory committee, and any changes to it, must be approved by the DGS and the Graduate School at least two weeks change before the MS exam. For additional details about the final exam, see the Appendix B – Milestone Documents and Presentation Guidelines section on the PhD Requirements page.
For a Computer Science PhD student earning an MS degree en route, the MS defense can be combined with the RIP defense or the preliminary exam, if approved by the supervisory committee. The outcomes of the MS defense and the other milestone will be determined separately by the committee. In the case of combining with the RIP defense, the MS written report may serve as the RIP final report. In the case of combining with the preliminary exam, the MS written report may serve as part of the preliminary exam report; however, the full preliminary exam report must additionally contain a dissertation proposal component.
We will outline below the requirements for the course-only option. For this option, the 30 units will have to satisfy the additional requirements below. If you want to count a course that is not in this list, consult the DGS. The courses in the “Elective Requirement” below can count (if applicable) as either an “approved elective” or an “outside CS” course towards the general MSCS requirements outlined above.
For students doing the project/thesis option, the requirements are:
- The project/thesis must be in an area related to the concentration. Please consult with your committee and DGS to check that it conforms.
- Any two courses from the breadth, depth, and elective requirement courses, as long as at least one of the two courses is a depth course.
Artificial Intelligence/Machine Learning Concentration:
- Breadth Requirement: CompSci 570 (Artificial Intelligence) or CompSci 671. If you take CompSci 570, then you can count CompSci 671 towards the depth requirement.
- Depth Requirement: In addition to the one breadth course, at least two courses from the following list.
- CompSci 671 (Theory and Algorithms for ML); If you did not take 570, then you need to count 671 towards the breadth and not the depth requirement.
- CompSci 590.XX (Machine Learning Algorithms),
- CompSci 590.XX (Reinforcement Learning),
- CompSci 527 (Computer Vision),
- CompSci 571 (Probabilistic ML),
- CompSci 572 (Introduction to Natural Language Processing),
- CompSci 574 (Deep Learning Fundamentals)
- Elective Requirement: At least one course in AI/ML-adjacent areas, from either inside or outside the department. These include, but are not restricted to the following. Please consult the DGS to check if a course you plan to take can count as an elective. You can take an extra depth course to satisfy this requirement as well.
- CompSci 555 (Probability and Statistics for ECE)
- CompSci 590 (Topics in Computational Biology),
- CompSci 561 (Computational Sequence Biology),
- CompSci 590 (Cryo-EM Analysis),
- CompSci 590 (Computational Economics)
- CompSci 590 (Generative Models)
- CompSci 675 (Introduction to Deep Learning)
- ECE 590 (Advanced Topics in Deep Learning)
- ECE 661 (Comp. Eng. Machine Learning and Deep Neural Networks)
- ECE 563 (Machine Learning in Adversarial Settings)
- Breadth Requirement: CompSci 581 (Graduate Computer Security). You can also take CompSci 510 or CompSci 514 to satisfy this requirement.
- Depth Requirement: In addition to the breadth course, at least two courses from the following list. Not all of these courses will be consistently offered, so please plan accordingly.
- CompSci 581: Graduate Computer Security. If you count this course towards the breadth requirement, you cannot count it towards the depth requirement. If you count this as a depth course, you need to take two other depth courses instead of one other depth and one elective course.
- CompSci 590 (Secure Software Systems),
- CompSci 590 (CryptoCurrency),
- CompSci 590 (Applied Cryptography)
- CompSci 590 (Blockchain),
- CompSci 590 (Privacy and Fairness)
- CompSci 590 (Cloud Security)
- CompSci 582 (Cryptography)
- Elective Requirement: Any one course in security-adjacent areas, from either inside or outside the department. These include, but are not restricted to the following. Please consult the DGS to check if a course you plan to take can count as an elective. You can take an extra depth course to satisfy this requirement as well.
- CompSci 516 (Database Systems)
- CompSci 555 (Probability and Statistics for ECE)
- CompSci 554 (Fault Tolerant and Testable Computer Systems)
- CompSci 590 (Comp. Arch and Hardware Acceleration)
- CompSci 564 (Edge Computing)
- CompSci 590 (Coding Theory)
- CompSci 630 (Randomized Algorithms)
- CompSci 650 (Advanced Computer Architecture)
- ECE 663 (Machine Learning in Adversarial Settings)
Portfolio Requirement: In addition to the course requirements, the student will have to submit a final portfolio outlining what they have done in the concentration area that goes beyond merely taking courses. This could include internships, attending seminars or reading groups, mentoring undergraduate students in CS+, TA-ing courses, and so on. These activities should be associated with the planned concentration area, and this will be checked as part of the exit interview. Please list at least two such activities in the portfolio.