The Graduate Field of Computer Science seeks to produce well-rounded researchers who have demonstrated both breadth in computer science and depth in specific areas of concentration. Although the program is designed to be flexible, students in the CS Ph.D. program must complete several requirements imposed both by the Field and by the Cornell Graduate School:

Field Requirements

  • competency requirement
  • breadth requirement
  • project requirement
  • teaching requirement

Graduate School Requirements

  • residency
  • special committee
  • minor requirement
  • A exam
  • B exam

Each of these requirements is described in some detail below, followed by a FAQ that answers some of the most common student questions. Because no document can hope to cover all the nuances, students who have questions or concerns should consult their advisor and the Director of Graduate Studies (DGS).

The Field requirements were most recently updated in Fall 2018. Students matriculating in Fall 2018 or later must fulfill the new requirements. Students who matriculated into the Ph.D. program earlier may choose to fulfill either the new requirements or the previous requirements. 

Field Requirements

The Competency Requirement

The Field believes that knowledge of Computer Science at the undergraduate level is an indispensible foundation for doctoral study in CS. Ph.D. candidates are expected to demonstrate competency at the high undergraduate level in four areas of computer science: Artificial Intelligence, Programming Languages, Systems, and Theory. This requirement can be discharged in one of three ways:

  1. by demonstrating competency through one’s prior coursework;
  2. by taking a course for grade credit (acceptable courses are listed below, subject to change);
  3. by taking the final exam in one of these courses, if permitted by the instructor.

Students who have earned a Bachelor’s or Master’s degree in Computer Science are automatically deemed to have satisfied the competency requirement in all four areas. Students with no prior degree in CS may still be exempted from one or more of the four competency requirements based on their prior coursework. Requests for such exemptions are to be accompanied by documentation concerning the relevant prior coursework (course website, detailed syllabus, list of assignments when possible) and will be judged on a case-by-case basis by the DGS in consultation with the faculty in the relevant area.

Each area is required to offer students at least one of option 2 or 3.  Whichever method is chosen, the requirement must be fulfilled with acceptable performance, as judged by the Field. For option 1, acceptable generally means with a grade of B+ or higher for graduate courses, A- or higher for undergraduate courses.

The acceptable courses are:

  • Artificial Intelligence: CS 4700.
  • Programming Languages: CS 4110/5110, CS 4120/5120, or CS 6110
  • Systems: CS 4410, CS 6410
  • Theory: CS 4820 or CS 6820

This requirement must be fulfilled by the time of the A exam.

The Breadth Requirement

Ph.D. students must take at least five 5000/6000-level courses for grade credit.  Note that only certain 5000 level courses count. These courses must cover at least three different CS areas and all three CS research styles. The requirement is intended to expose students both to the research problems and techniques associated with different research areas, and also to the different value systems of various computer science research styles that differ in how they evaluate and validate research results.

Courses taken to satisfy the competency requirement can be used to count towards the breadth requirement. Courses at the 7000 level do not count, nor do courses from other fields (however, see Exceptions below).

The areas are as follows:

  • Algorithms and theory of computation, including algorithms, complexity theory, cryptography, logical and type-theoretic foundations of computer science.
  • Artificial intelligence, including robotics, computer vision, natural language processing, information organization and retrieval, and machine learning.
  • Systems, including concurrency, parallel computing, networks, distributed computing, and data management.
  • Programming languages and methodology, including applied logic, automated reasoning, and compilers.
  • Scientific computing and applications, including graphics and computational biology.

The research styles are the following:

  • Theoretical. The theoretical research style is characterized by constructing formal models of computation that are validated primarily by mathematical proof.
  • Systems. The systems research style focuses on how to improve computing platforms by making them faster, more reliable, more secure, etc. Validation is primarily empirical or experiential.
  • Applied. The applied research style develops new methods for using computers to solve problems of interest. Validation is achieved primarily by demonstrating empirically that these methods are effective for the problem.

The following table summarizes the breadth requirement. It represents the classification of CS graduate courses into areas and research styles. Students must take five 5000/6000-level courses, covering at least three rows of this table and all three columns.

      Research Styles  
    Theoretical Systems Applied
  Algorithms/ Theory 5800xx, 68xx    
  AI 5486, 676X, 6783 6751

 

5540, 5670, 5724, 5740, 5780, 5785, 5786, 6360, 6670, 67xx\{6751, 676x, 6783}

Areas    Systems 6432

 

5300, 5412, 5414, 5430, 632x, 641x, 6431, 6450, 6453, 6455, 6465, 6466

 

 

 

 

PL

 

611x, 6180

 

5114, 5120, 6114

 
 

 

Sci. Comp. & Apps

  5220

 

5625, 5643, 62xx, 65xx, 66xx\{6670}

 

As with the competency requirement, the breadth requirement must be fulfilled with acceptable performance, as judged by the Field. A grade of B or better is generally acceptable.

The list of courses that satisfy the area and research style requirements of the breadth requirement are subject to change as faculty develops new courses.

The Project Requirement

Ph.D. students are required to satisfy the project requirement by writing a significant piece of software. One way to satisfy the project requirement is by taking a course with a significant coding component and having the instructor for the course certify that the project satisfied the project requirement. The student is typically expected to get a grade of B- or better in the course. The project requirement can also be satisfied by projects outside of classes, for example, as part of independent research, your thesis research, or as part of a summer job. In these cases, the chair of your special committee needs to certify that you satisfied the project requirement.

The Teaching Requirement

Ph.D. students must serve as a teaching assistant for at least two semesters or teach a course for at least one semester. 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.

Exceptions

We recognize that the Field requirements as stated above may not be universally appropriate, especially in nontraditional areas such as computational biology that may require significant coursework outside of computer science. In such exceptional cases, students are encouraged to formulate an alternative course of study in consultation with the special committee and to present a proposal to the Field for approval.

Graduate School Requirements

Residency

As a Ph.D. student, you must be in residence for at least six semesters, or four if you already hold a Master's degree at the time of enrollment. The advisor or DGS awards one residence unit after the satisfactory completion of each semester of full-time study. Fractional units may be awarded for unsatisfactory progress.

The Special Committee

Before the start of your fourth semester, you must form a special committee. The special committee consists of a chair and two or more minor members.

When you specify the members of your committee, you must specify the areas of concentration they represent.  These must be areas officially recognized by the Graduate School associated with the committee member's field.  The Field of Computer Science has six official areas of concentration, listed here along with their associated subareas:

Systems

  • operating systems
  • fault tolerance
  • distributed systems
  • database systems
  • digital libraries
  • machine architecture
  • networks
  • parallel computing
  • security

Theory of Computation

  • algorithms
  • complexity theory
  • cryptography

Artificial Intelligence

  • robotics
  • human-computer interaction
  • information retrieval
  • natural language processing
  • computer vision
  • machine learning
  • knowledge representation and reasoning

Programming Languages and Logics

  • programming methodology
  • programming environments
  • program logic and verification
  • automated reasoning
  • compilers
  • type theory and program analysis
  • programming language design

Scientific Computing and Applications

  • computer graphics
  • computational biology and bioinformatics
  • scientific computing

The chair of your special committee represents your major area of concentration and is normally your thesis advisor.  The chair can be any member of the Field of Computer Science.  The Computer Science area is only for graduate students in other fields who wish to minor in Computer Science.  It may not be specified as either a major or minor area of concentration for Ph.D. students in CS.

The two minor members of your special committee represent your minor subjects (see The Minor Requirement below).

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 Minor Requirement

The minor requirement is a Graduate School requirement, not a CS Field requirement. All Ph.D. students at Cornell must have two minors. For Ph.D. students in Computer Science, the Field requires one of these to be external to Computer Science and one to be internal.

The external minor must be in a field other than CS. The minor requirements are up to the minor field. Related fields such as Operations Research, Applied Mathematics, Cognitive Science or Electrical and Computer Engineering are common choices. However, any minor field is acceptable. When you choose your minor field, you must also choose an area of concentration in that field and minor advisor who is a member of that field. The minor advisor serves on your special committee and will work with you in setting your minor requirements. 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.

There are no additional requirements for the internal minor, except that the minor area of concentration must be different from the major area of concentration.

The A Exam

The A exam (Admission to Candidacy Exam) is an oral exam.  It is a final test of your preparedness for undertaking thesis research. The content and coverage of the A exam is determined by the special committee and discussed with the student beforehand. 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. Occasionally the A-exam serves as an opportunity to present completed research that is unrelated to the thesis topic.  Some committees expect the student to prepare a written document prior to the exam, which 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 study. Students are required to have completed the competency requirement and to have at least two units of residency prior to the A exam. In addition, students must attempt the A exam before beginning their seventh 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 breadth requirement before taking their A exam, it is not necessary to have completed this requirement 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 your thesis defense. It is strongly recommended that a draft of your thesis be provided to your committee three to four weeks prior to the B 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 thesis itself. The Ph.D. degree is awarded after you have passed the B exam and filed an approved dissertation with the University, and completed all the other requirements above. The University requires a minimum of two units of residency between the A exam and the B exam. Most students complete their B exam within four to six years after their 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.

What should I do over the summer?

There are lots of opportunities. 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?

The Field of Computer Science meets annually to review each student’s progress. The DGS summarizes progress towards requirements, presents a summary of courses taken and grades received, and indicates whether the student has taken or is scheduled to take 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, forming a special committee, and launching a research program that will lead to a dissertation. Normally, the student's current advisor will briefly describe the student's recent progress.

The goal of this meeting is to understand how we can best help the students 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 always depends on 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 some courses as an undergraduate prior to coming to Cornell that appear to be identical to the ones listed under the competency requirement. Can I get out of those parts of the requirement?

Yes, possibly. Requests for such exemptions are to be accompanied by documentation concerning the relevant prior coursework (course website, detailed syllabus, list of assignments when possible) and will be judged on a case-by-case basis by the DGS in consultation with the faculty in the relevant area.

I was enrolled as a Ph.D. student at another institution for two years before transferring to the Ph.D. program at Cornell. I took several graduate courses as part of my studies. Can I count these towards my requirements here?

Maybe. You should negotiate the transfer of credit with the DGS and your advisor, who will consult with relevant faculty to decide whether it is appropriate to treat the prior coursework as a substitute for Cornell Ph.D. requirements.

How do I create a special committee?

Most students enter Cornell with a good idea of what area they want to specialize in.  Those who do not still have strong areas of interest. By reading recent research papers, faculty web pages, and course descriptions, you should pick courses taught by faculty members you might enjoy working with.  Focus on areas for which you believe you have talent, good ideas, or interest. Being a TA 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 generally 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 if things just are not working out, you or your committee chair (advisor) may decide to reconstitute your committee. This is not considered a bad thing and will not leave a blot on your record. All field members 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 field 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 completion of your coursework.

What is the rationale for having an external minor requirement? Some fields at Cornell don't require that.

The competency and breadth requirements relate to the CS field itself, but we want our students to be scholars familiar with a world beyond their area in CS. The minor requirement reflects that philosophy. Note that the CS Field accepts any proposed minor, even one completely unrelated to the student's program of study.

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

This is not your problem. The graduate 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, the graduate 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 have already taken), you should let us know.

I am primarily interested in [vision/graphics/HCI/security/architecture] and was disappointed to see that the competency requirement emphasizes other areas. Why am I being penalized, in the sense that a theory, systems or languages student would have fewer requirements than I do?

The competency 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 do not view this as a "penalty" on people who work outside these core areas, but rather as a type of common background that provides a context for interacting with colleagues.

The requirements are designed to be flexible.  Our course requirements work 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.

In any case, there is the Exceptions clause; if you can make a strong case that the requirements as we have stated them will inhibit your progress in research in your chosen area of study, and if you are able to formulate a good-faith alternative program in consultation with your advisor, then the Field will be happy to entertain a proposal.

Why are there requirements in [AI/programming languages/theory...] and not in [graphics/databases/...]

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