Computer Science
Overview
The Department of Computer Science accepts both beginning and advanced graduate students for study and research leading to the degree of Master of Science in Engineering (M.S.E.) and Doctor of Philosophy (Ph.D.). These degree programs are sufficiently flexible to adapt to individual plans of study and research.
Applying
Applicants are required to select a subplan when applying.
Ph.D.
The doctoral program in computer science combines course work and participation in original research. Most students enter the program with an undergraduate degree in computer science, mathematics, or a related discipline. Some entering students may have a master’s degree, but that is not necessary for success in the program. Every admitted Ph.D. student is given financial support in the form of a first-year fellowship. In addition, all admitted Ph.D. students are automatically considered for the prestigious Wu and Upton Fellowships.
In preparation for the general examination, the doctoral candidate, in consultation with a faculty adviser, develops an integrated program of study in one of the departmental areas of research. Such preparation usually requires two academic years for students entering with a bachelor’s degree, and one year for students entering with a master’s. Students are required to complete the breadth requirements by the end of the second year.
A total of 6 courses are required. The first three courses constitute the core breadth requirement. All students must fulfill the breadth requirements by the end of the second year, demonstrating minimum competence in three main areas of computer science: Systems, Artificial Intelligence (AI), and Theory. Students must take one course from each group -- Systems, AI, and Theory -- from the courses listed below. The remaining three courses can be any 400- or 500-level course from any department in the University. Courses taken outside the Department of Computer Science require approval from the student’s academic adviser and the Director of Graduate Studies.
All courses must be taken for a grade. A grade of B+ or higher is required to get credit towards course requirements, although at most one B will be accepted for a course that does not satisfy the core breadth requirements. Individual research areas may request additional courses in excess of departmental requirements or may require students in that subfield to complete specific required courses in fulfillment of course requirements.
Breadth requirement core course list:
Systems
- 475 Computer Architecture (See ELE 475)
- 518 Advanced Computer Systems
- 561 Advanced Computer Networks
Artificial Intelligence
- 402 Artificial Intelligence
- 424 Interacting with Data
- 485 Neural Networks
- 511 Theoretical Machine Learning
- 513 Foundations of Probabilistic Modeling
Theory
- 510 Programming Languages
- 516 Automated Reasoning About Software
- 521 Advanced Algorithm Design
- 522 Computational Complexity
The general examination consists of a research seminar prepared under the supervision of a faculty member, followed by an in-depth oral examination on the contents of the seminar and the associated general area of research. The oral examination tests the student's knowledge in a number of topics relevant to the student's research area. These topics are specified beforehand by an examining committee in consultation with the student. The seminar is open to the public, and at least three computer science faculty members must attend. Two are invited by the student; the other is selected by the director of graduate studies. The examining committee and the student agree upon a reading list for the exam. This document is to be made available to anyone present in the oral examination, and only questions pertaining to either the material described in the document or presented during the research seminar can be asked during the oral examination.
Original research results do not have to be presented, but problems whose solution may lead to a thesis should be discussed. In many cases, the student’s thesis is in the same area as the research seminar, but this is not required.
The Master of Arts (M.A.) degree is normally an incidental degree on the way to full Ph.D. candidacy and is earned after a student successfully completes the six breadth requirements. It may also be awarded to students who, for various reasons, leave the Ph.D. program, provided that the requirements have been met.
Please note, students admitted to the Ph.D. program who do not wish to complete the program may be considered for an M.S.E. degree with approval from the department and the Graduate School. Ph.D. students who have already been awarded the incidental M.A. are not eligible to earn an M.S.E.
Teaching experience is considered to be a significant part of graduate education. All Ph.D. candidates are therefore required to assist with course instruction for the equivalent of two terms.
The Ph.D. is awarded after the acceptance of the dissertation and completion of the final public oral.
M.S.E.
The master's degree program at Princeton is a two-year, full-time program. All admitted students are initially enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. In the spring of year 1, as part of readmission, all students are given the option to switch to the Master of Engineering (M.Eng.), non-thesis track. Students opting to remain on the M.S.E. track must have a confirmed research adviser and should also have a preliminary thesis proposal. Switching tracks will be permitted through January of year 2.
Teaching experience is considered to be a significant part of graduate education. Funding is normally awarded in the form of teaching assistantships. Teaching assistantships cover the four semesters of the program. Nonnative English speakers must have a TOEFL speak score of 27 or better to be considered for a teaching assistantship. Summer funding for M.S.E. candidates in the form of a research assistantship may be offered at the adviser's discretion.
Students who wish to continue on for a Ph.D. must apply through the normal application process during the fall of their second year of study.
Princeton undergraduate students who wish to apply to the master's program must do so through the regular admission process, and by the December 15 deadline. Admission is competitive. Princeton undergraduates interested in admission to the M.S.E. program may inquire in the spring of the third year. Interested students should submit a one-page (1-page) personal statement describing preparation to date and interest in the master's program; an unofficial copy of the undergraduate transcript; and letters of recommendation from two COS professors. The letters of recommendation should be emailed directly to the graduate coordinator. Once these materials have been received, the director of graduate studies will perform an informal review and provide feedback about whether admission into the master's program is "likely," "unlikely," or "possible." This feedback is not binding and is intended to help with course planning in the student’s senior year.
Candidates choose a subarea of computer science on which to focus their coursework. Course requirements are fulfilled by taking six courses for a grade. As least three of the six courses must be 500-level, and the additional courses may be chosen from 318, 320, 324, 326, 352, 375, or any 400-level course. Students must take a minimum of 4 courses in year 1. If, due to scheduling conflicts, this is not possible, approval by the director of graduate studies is required. All courses must be completed by the end of the second year of enrollment.
A full course list is available on the department website. Relevant courses from outside the department may be taken with adviser's consent. All coursework must be taken for a grade. Candidates must maintain a B average, and may receive no more than one C. In order to be readmitted for a second year, candidates must have a confirmed thesis adviser and preliminary thesis proposal by the end of the first year.
Please note: Candidates electing to switch to the M.Eng. degree track must complete a total of eight courses over two years, and are not required to submit a thesis. At least three of the eight must be 500-level, and the additional courses may be chosen from 318, 320, 324, 326, 352, 375, or any 400-level course. Relevant courses from outside the department may be taken with adviser's consent. A full list of approved courses can be found on the department website. All courses must be taken for a grade. Candidates must maintain a B average, with no more than one C allowed.
Princeton Option
Graduate students who received their undergraduate degrees from Princeton University may use credits towards the master's degree from two Princeton courses taken when the students were undergraduates, provided that the two courses were in excess of the requirements of the computer science department for the bachelor's degree. Those two courses must be upper-level COS courses that also fulfill requirements of the master’s degree.
The master’s program is fully funded by teaching assistantships. Master's students are required to hold a full teaching assistantship each semester that they are enrolled.
Candidates for the M.S.E. must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by the student’s adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Department of Computer Science, approval by the director of graduate studies is required. The public seminar is an ungraded 20-minute talk, followed by a 10-minute question session, given in the spring of year 2. This will allow the student’s adviser and reader to give preliminary feedback prior to submission of the final thesis.
The written thesis should be a research paper of scholarly quality, making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double-spaced format). Due date will be Dean's Date in the spring term of year 2. After being graded, four copies of the final version must be submitted to the department: two bound copies, following the formatting guidelines from Mudd Library, one unbound hard-copy, and the fourth as a .pdf file.
Faculty
Chair
- Jennifer L. Rexford
Associate Chair
- Adam Finkelstein
Director of Graduate Studies
- Ryan P. Adams (co-director)
- Ben Raphael (co-director)
Director of Undergraduate Studies
- Brian W. Kernighan (co-director)
- Jaswinder P. Singh (co-director)
Professor
- Ryan P. Adams
- Andrew W. Appel
- Sanjeev Arora
- David I. August
- Mark Braverman
- Bernard Chazelle
- David P. Dobkin
- Edward W. Felten
- Adam Finkelstein
- Michael J. Freedman
- Tom Griffiths
- Aarti Gupta
- Elad Hazan
- Brian W. Kernighan
- Kai Li
- Margaret R. Martonosi
- Ben Raphael
- Ran Raz
- Jennifer L. Rexford
- Szymon M. Rusinkiewicz
- Robert Sedgewick
- H. Sebastian Seung
- Jaswinder P. Singh
- Mona Singh
- Robert E. Tarjan
- Olga G. Troyanskaya
- David P. Walker
Associate Professor
- Zeev Dvir
- Barbara E Engelhardt
- Kyle A. Jamieson
- Arvind Narayanan
Assistant Professor
- Danqi Chen
- Jia Deng
- Felix Heide
- Zachary Kincaid
- Gillat Kol
- Amit A. Levy
- Wyatt A. Lloyd
- Jonathan Mayer
- Karthik Narasimhan
- Olga Russakovsky
- Matt Weinberg
- Mark L. Zhandry
Associated Faculty
- Amir Ali Ahmadi, Oper Res and Financial Eng
- Yuxin Chen, Electrical Engineering
- Jianqing Fan, Oper Res and Financial Eng
- Jaime Fernandez Fisac, Electrical Engineering
- Chi Jin, Electrical Engineering
- Jason D. Lee, Electrical Engineering
- Ruby B. Lee, Electrical Engineering
- Anirudha Majumdar, Mechanical & Aerospace Eng
- Prateek Mittal, Electrical Engineering
- Paul Seymour, Mathematics
- John D. Storey, Integrative Genomics
- Daniel L. Trueman, Music
- Robert J. Vanderbei, Oper Res and Financial Eng
- Janet A. Vertesi, Sociology
- Mengdi Wang, Electrical Engineering
- David Wentzlaff, Electrical Engineering
Instructor
- Sahil Singla
Lecturer with Rank of Professor
- Robert E. Schapire
- Yoram Singer
Senior Lecturer
- Kevin Wayne
Lecturer
- Robert M. Dondero
- Robert S. Fish
- Donna S. Gabai
- Maia Ginsburg
- Alan Kaplan
- Dan Leyzberg
- Xiaoyan Li
- Jérémie Lumbroso
- Christopher M. Moretti
- Soohyun Nam Liao
- Iasonas Petras
- Mohammad Shahrad
Courses
Permanent Courses
Courses listed below are graduate-level courses that have been approved by the program’s faculty as well as the Curriculum Subcommittee of the Faculty Committee on the Graduate School as permanent course offerings. Permanent courses may be offered by the department or program on an ongoing basis, depending on curricular needs, scheduling requirements, and student interest. Not listed below are undergraduate courses and one-time-only graduate courses, which may be found for a specific term through the Registrar’s website. Also not listed are graduate-level independent reading and research courses, which may be approved by the Graduate School for individual students.