Requirements for the Doctoral Program in ACO

Program Requirements

The Coordinating Committee for the Ph.D. program in Algorithms, Combinatorics, and Optimization has established the following core curriculum. This curriculum is designed to provide students with significant flexibility in choosing courses, while simultaneously ensuring a solid grounding in the fundamentals of ACO.

More information on specific courses can be found in the home departments:


All ACO students will be required to take 2 semester CS classes, 2 semester Math classes, and the equivalent of 2 semester Tepper classes (i.e 4 mini classes). Also required is 1 probability class.

Qualifying Exam

Every ACO student will be required to take the same Qualifying Exam. This exam will be given in January after the student's 3rd semester. The exam will contain 1 question on Algorithms, 1 question on Discrete Math, 1 question on Linear Programming, 1 question on Convex Optimization, 1 question on Integer Programming.


Research is obviously a big component of the ACO program. Each department has different research expectations, as well as policies, for when students should find research advisors. You should talk with your department head to understand the research expectations for your department.

Weekly Research Seminar

During your participation in the Algorithms, Combinatorics, and Optimization program, you are expected to participate in the weekly ACO research seminar. You are also expected to take advanced courses in the area of your research in addition to the course requirements listed above.


Regardless of your home department, by the end of the third semester (if not earlier), you must choose a faculty member to supervise your research and dissertation. As an ACO student, you will be subject to an annual review by the ACO faculty who will judge whether the thesis work is proceeding satisfactorily. Approximately a year before the expected graduation date, you must make a thesis proposal before a thesis committee, composed of the advisor and two or more faculty members of the student's choosing. The final transition point is the thesis defense, which is presented before the same committee.

Teaching and Programming Skills

To graduate, you will need some teaching experience, and all students must demonstrate programming skills. (For every student, a faculty member, approved by the student's advisor, must attest that the student has adequately demonstrated programming skills.)

Back to the ACO home page