The Coordinating Committee has established a challenging core curriculum in Analysis, Algebra, Probability, Combinatorics, Linear and Integer Programming, Graph Theory, Convex Optimization, Algorithms, and Complexity Theory.
Besides the core courses, a host of other courses are available for the students to take. Some examples are combinatorial optimization, graph coloring, matroid theory, convex polytopes, location theory, sequencing and scheduling, large scale OR, parallel algorithms, probabilistic analysis of algorithms, approximation algorithms, machine learning theory, cryptography, nonlinear programming, and constraint programming. In the event that a student has already mastered a core course at the graduate level when entering the program, another course from the same department may be substituted. Approval must be obtained from the ACO Coordinating Committee and is given on a case-by-case basis. In addition, the students are expected to participate in the weekly research seminar on Algorithms, Combinatorics, and Optimization.
At the end of their third semester in residence, the students take a comprehensive qualifying examination based on the material in five core courses. At this stage (or earlier), they choose a faculty member to supervise their research and dissertation. Approximately a year before the expected graduation date, the student 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. To graduate, the students will also need some teaching experience and must demonstrate adequate programming skills.