CS Logo      
space
bar Information bar Events bar Admissions bar People bar Courses bar DegreePrograms bar Research bar Publications bar
space
design
space
Ph.D Requirements
space
Home » Degree Programs » Graduate Program » Ph.D
space

Requirements for the PhD in Computer Science at Cornell

[Note: These requirements were updated in Fall 2006. Students already enrolled in the PhD program at that time may choose to fulfill either the old or the new requirements.  This page describes the old requirements in effect prior to Fall 2006.  Students enrolling in Spring 2007 or later must fulfull the new requirements. The new requirements can be found at this link.]

The Graduate Field of Computer Science seeks to produce well-rounded researchers who have demonstrated depth and breadth. Although the program is designed to be flexible, there are a number of requirements, imposed both by the field and the Cornell graduate school. In particular, students in the CS Ph.D. program must complete the following requirements to get their Ph.D. (in addition to handing in a thesis!):

  • the area proficiency requirement;
  • the graduate course requirement;
  • the project requirement;
  • the minor requirement;
  • the A exam;
  • the B exam.
We discuss each of these requirements in some detail below. After that, there is a faq that tries to answer some of the most common questions and concerns that students have. However, no document can hope to cover all the nuances of the requirements. Students who have questions or concerns are strongly encouraged to consult their advisor and the Director of Graduate Studies.

The Area Proficiency Requirement

The Graduate Field believes that certain areas are so fundamental to Computer Science that all students should demonstrate competence in them. We currently expect students to show proficiency in five areas: theory, languages, systems, scientific computing, and artificial intelligence. This can be done either by passing the Q (qualifying) exam in that area or by taking appropriate courses and getting a grade of B+ or better. However, courses can be taken for only two of the five areas.

We expect proficiency at the level of a senior-year undergraduate course. For each area, the proficiency requirement can be satisfied by taking 400-level courses. In the case of artificial intelligence and numerical analysis, the Q exam is the final exam for the appropriate 400-level course; it is offered in December. For the other three areas, the Q exam is given in January, during the week before the start of the spring semester. You can find the syllabus for each exam here .

Courses that taken can be taken in lieu of the Q exam

  • Theory: (CS 481 or CS 682) and (CS 482 or CS 681)
  • Programming Languages: (CS 411 or CS 611) and (CS 412 or CS 612)
  • Systems: CS 414, and CS 432. (Students who entered the program prior to January 2002 may take CS 632 in place of CS 432.)
  • Artificial Intelligence: CS 472. (Students who entered the program prior to January 2002 may take CS 672 in place of CS 472.)
  • Scientific Computing: CS 421 or CS 621 or CS 622.

The Graduate Course Requirement

Graduate students must take a minimum of six graduate courses for a letter grade of B- or better, of which five must be at the 600 level. These courses need not all be in Computer Science, and they may include courses that are being counted toward a graduate "minor" field, as described below. The CS department requires that three of these six courses consist of one course in each of theory, programming languages, and systems, from the following list:
  • Theory: CS 681 or CS682
  • Programming Languages: CS 611 or CS 612
  • Systems: CS 601 or CS 614 or CS 632
Typically, students take two courses each semester in their first year or two at Cornell, mostly at the 600 level, so they find it quite easy to fulfill the course requirement.

The Project Requirement

Students are required to complete a significant CS project. One way to satisfy this project requirement is either by taking a course with a significant project component for a grade (B- or better). For example, the projects in the courses CS 632, CS 513, CS514, and CS 664 all satisfy the requirement. You can also satisfy this requirement by projects outside of classes, for example, by doing an independent project as part of your research, or part of a summer job. To use such an independent project you need a CS field member to certify that your project satisfied the requirement. If you developed and debugged a lot of code, it can probably be used to satisfy the project requirement.

The Minor Requirement

The CS Field requires that each Ph.D. student have a minor in a field other than CS. Related fields such as Operations Research, Mathematics, Cognitive Studies or Electrical Engineering are common choices. However, any minor field is acceptable. When you choose your minor, you must also choose a minor field advisor. The minor field advisor serves on your special committee (see below), and will work with you in setting the requirements for the minor field. Typically, this involves knowledge of 3-4 graduate courses in the field, but expectations can vary depending upon the field. Before settling on a minor field, a student should find out about that field's requirements.

The A Exam

The A exam (Examination for Admission to Candidacy) is an oral exam. Before taking the exam, you must form a special committee . The committee consists of a chair, who is your thesis advisor and can be any member of the Computer Science field, and two or more additional members. One of these additional members is your minor field advisor (see above); another one should be a computer science field member who is not directly in your main research area (as the Guide to Graduate study puts it, the second member must "represent a different concentration"). While it suffices to have only three people on your special committee, there are many advantages to having more. Your committee members can often provide useful advice. Being on your committee also means they are more likely to know your work better, which helps if you want them to write letters of reference for you. Note that only three special committee members need to be from Cornell. The rest can be from other institutions or from industry.

The content and coverage of the A exam is defined by the special committee and discussed with the student beforehand. The intent of this exam to establish that the student is capable of doing a Ph.D. thesis is some chosen area. Often, the student at an A-exam will describe the problem to be attacked in the thesis and give some preliminary research results. But an A-exam might instead have the student present an in-depth survey of a research area, and occasionally the A-exam has instead served as an opportunity to present research undertaken and now completed that is unrelated to the area in which thesis research is being contemplated. Some committees expect the student to prepare a written document prior to the exam; this document might cover content that will be discussed at the exam or complement that content.

Students normally aim to take the A exam in their third year of graduate studies. Students are required to pass the Q Exam (Area Proficiency Requirement) and have at least two units of residency prior to taking the A exam (a residency unit is equivalent to 1 semester of full-time study). In addition, students must attempt the A exam before finishing their 7th semester of study. (More details of the university's requirements can be found in Cornell's Guide to Graduate's Study .) Although students have normally made substantial progress towards completing the graduate course requirement before taking their A exam, it is not required that the graduate course requirement be completed before the A exam. (Note that your minor advisor may require you to have taken some courses in your minor before your A exam; you should check with him/her.)

The B Exam

The B exam is the thesis defence. While it is not required, it is strongly recommended that a draft of your dissertation be written and be given to your committee prior to taking this exam. In most cases, it should require only minor editing after the exam. However, during a B exam, the committee may ask for revisions, in which case it is possible that the student will pass the B exam but not yet have full approval of the dissertation itself. The Ph.D. degree is awarded after you have passed the B exam and filed an approved dissertation with the University (and completed the other requirements above). The University requires a minimum of two units of residency credit between the A exam and the B exam. Most students complete their B exam within four to six years after arrival at Cornell.

Frequently Asked Questions

Here are answers to some of the more common questions and concerns that students have. Again, you are encouraged to consult with your advisor or the Director of Graduate Studies if you have concerns not covered here.

Is teaching required?

Although not a requirement of the field, all students are also encouraged to serve as TAs at least once in every four semesters, and/or to consider teaching a course during the summer months. Contact with students is valuable both as preparation for a possible academic career and for the experience in communicating ideas to groups, which is important in any setting, academic or otherwise.

What should I do over the summer?

People do various things over the summer. Some popular options include doing research with a faculty member, often your advisor or potential advisor (this is particularly appropriate as you get further along in the program), teaching a course, or doing a summer internship. We believe that it is in your interest to spend one or more summers as an intern in an industry research lab or at some other University. Doing so exposes you to other perspectives on the field and to the priorities driving the industry; it can really help later when you enter the job market. We'll suggest many options and can help you find a good match to your interests. Your advisor may also have contacts that would lead to interesting internship opportunities. For foreign students, internships should satisfy the requirements for practical training under a student visa, hence no special visa approvals should be required. Most students spend at least one or two summers as interns, usually during their first three years at Cornell.

What happens at the annual field meetings?

A Computer Science field meeting is held annually, in January. At the meeting, the field examines the progress of each student. The DGS summarizes progress towards requirements, presents a summary of courses taken and grades received and indicates whether the student has taken (or scheduled) an A exam. For students who have been at Cornell for a few semesters, the emphasis of the discussion is on progress toward identifying a research topic and launching a research program that will lead to a dissertation. Normally, the students current advisor will briefly describe the status of their research. Faculty members who were impressed by the student in a class will often bring this up. The emphasis of the review is to put the students progress in a positive light.

Our goal is to understand how we can help the students in the field establish themselves as researchers, publish their work, and graduate within the normal time period. If a consensus emerges that a particular student may not be heading toward successful completion of the degree program, the field will discuss appropriate action, which would always depend upon the specific situation. While students are occasionally asked to leave the program, this happens very rarely. In any case, no student is ever asked to leave the program without first being given a warning and time to correct the situation, except in the case of serious violations of the University code of conduct.

I took several courses prior to coming to Cornell that appear to be identical to the ones listed under the course-based exemptions for one or more of the area proficiency exams. Do I need to take the exam in this case?

Yes. Most Ph.D. students will have extensive coursework in Computer Science prior to arrival at Cornell; hence this situation is the norm, not the exception. The field established the area proficiency exam to ensure that despite the varied emphasis and coverage of undergraduate programs from which our students come, the graduate program can assume a basic level of broad competence among the students. With such a good background, it shouldn't be a difficult matter to pass the Q exam.

I am taking courses to satisfy the area proficiency requirement in an area for which I have some prior undergraduate background. Is it possible to substitute a graduate-level course for one or more of the undergraduate area courses listed?

No courses can be used in lieu of a Q exam other than those explicitly listed . To understand why this is not allowed in general, consider CS414 and the graduate courses that correspond to it, CS514 and CS614. CS414, an undergraduate operating systems course, spends a lot of time on concurrency and techniques for protecting concurrent programs against bugs caused by race conditions, unprotected shared variables, and reentrancy. It delves deeply into memory management and virtual memory mechanisms and looks at questions of protection, performance, and general O/S structure and functionality. Although CS514 and CS614 are also systems courses, these tend to specialize on only a few topics, and in fact the reason for the CS414 systems area requirement is precisely so that courses like CS614 can assume that students have a broad grounding. One could earn a high grade in CS614 without ever needing to demonstrate a good understanding of concurrency, despite the fact that such a weakness in ones background would be a real problem in terms of exploiting modern computing platforms. For these reasons, the systems area does not consider CS614 to be an acceptable substitute for CS414 in demonstrating area proficiency.

How do I create a special committee?

Most students enter Cornell with a good idea of what area they want to work in, and those that enter without a sense of this still have areas of interest. By reading recent research papers, the annual report and course descriptions, you should pick courses taught by faculty members you might enjoy working with, in areas for which you believe you have talent, good ideas, or interest. TAing for a faculty member with whom you may want to work is often a good idea, especially if the course is in the general area of your interests and talents.

Faculty members are always available to talk to graduate students about potential research topics in their area, and most students will talk to a few before joining a research group. It is common for a faculty member to suggest working with the student for a period of time, perhaps a semester, before considering the relationship "official". Some students will approach a potential advisor soon after arriving on campus, but others may take some time to shop around. All students should try to identify an advisor by the end of their first year at Cornell.

If your interests change over time, or things just arent working out, you or your committee chair (advisor) may decide to reconstitute the committee. This isn't considered a bad thing and won't leave a blot on your record. All the faculty members in the field have an interest in seeing our students do the best and most innovative work they are capable of, and if this means changing advisors or topics, so be it.

Do I need to complete my graduate coursework prior to taking the A exam?

Most students who take an A exam will have satisfied the majority of their course requirements, and many will have completed their minor (for some minor fields, this is a requirement; read the rules published by the minor field that you select!) The special committee will typically let you schedule the A exam prior to the coursework being completed, although it is expected that most students will have finished all coursework requirements after three and one-half years at Cornell.

What is the rationale for having a minor requirement? Some fields at Cornell don't have such a requirement.

The minor requirement is not purely a CS invention. The University itself requires that there be a member on each special committee "representing each of a student's minor field(s)". Many departments interpret this to be a de-facto University requirement for a serious minor, and each field sets its own requirements which the minor committee member is expected to enforce.

More broadly, the minor requirement reflects a CS field philosophy, namely that our students should demonstrate breadth of knowledge. The area proficiency requirements relate to breadth within the CS area itself, but we want our students to be scholars familiar with a world beyond their area in CS. The minor requirement reflects that requirement. Note that The CS field accepts any proposed minor, even one unrelated to the students program of studies.

A student cannot use coursework to satisfy requirements in more than two areas. Why does the field have this bias in favor of exams? I dislike exams and would rather use coursework to minimize the number I need to take.

We want you to get started on research without much delay. Since we expect most of our students to have adequate background in at least three of the areas covered by the Qs, we expect that by allowing students to only take courses in lieu of two exams, students will spend less time taking undergraduate courses and more time on research.

Will areas like systems, which base their exam on several courses, have several Q exams?

No. Areas that cover more than one course offer a Q exam in January. That exam covers all the relevant courses.

How do I report on my progress towards satisfying the requirements?

This isn't your problem. The DGS office maintains a file on each student which includes a checklist for the various requirements. Each year, prior to the annual review of student progress that occurs in January, the DGS office will update these checklists. Of course, if you think that your record is missing pertinent information (e.g., if you are told you need to take a course that you've already taken), you should let us know.

I took graduate courses as part of my studies before coming to Cornell. Can I count these towards the graduate course requirements here?

No. Only Cornell courses count towards the requirement. It is very hard for us to calibrate non-Cornell courses, so for uniformity, we do not count any of them. As we said earlier, the course requirement is a rather easy one to satisfy in any case.

I am primarily interested in [vision/graphics/AI/concurrency/logic/architecture] and was disappointed to see that the graduate course requirements emphasize other areas. Why am I being penalized, in the sense that a theory, systems or languages student would have fewer requirements than I do?

All our students are asked to take six or more graduate courses, three of which will often be courses in the minor field. This works out to fewer than one per semester for an average student. Obviously, some courses will prove to be more interesting or more directly relevant than others, but our hope is that many students will discover new areas of interest by taking courses outside of a narrow research focus. The theory, systems and languages requirements reflect the field's consensus that the corresponding courses cover a core set of concepts and material with which any computer scientist needs to be familiar and comfortable, simply to be able to participate in normal dialogue with other computer scientists. We don't see this as a "penalty" being imposed on people who work outside the core areas, but rather as a type of background that one needs in order to interact with colleagues.

Why are there Qs in [AI/programming languages/numerical analysis/...] and not in [graphics/databases/...]

We recognize that computer science is evolving rapidly. Areas that were considered central 10 years ago may not be quite as central now. While the areas for the Qs represent the faculty's consensus of material that every computer scientist should know, this is a topic we frequently revisit.

Why are the Q exams only offered once a year?

At one point the Qs were offered both in January and May. It is difficult to schedule the spring Qs and, to be honest, faculty are not enthusiastic about writing and grading Qs twice a year. But there is also a hidden benefit for students to having Qs only once a year: it allows students (even ones who did not do so well on the Qs) to focus more on research on the spring (which the field believes to be a good thing!). Our experience has shown that this is less likely to happen if the Qs are offered twice a year.
space
bar
bar
[ About Us · Contact Us · Feedback · Site Map ]