Requirements for the Ph.D. in Computer Science at Cornell The Graduate Field of Computer Science seeks to produce well-rounded researchers who have demonstrated
both breadth in computer science and depth in some specific areas of concentration. 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 earn their Ph.D. Field Requirements - competency requirement
- breadth requirement
- project requirement
- teaching requirement
Graduate School Requirements - residency
- special committee
- minor requirement
- A exam
- 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. Students who have questions or concerns are strongly encouraged to consult
their advisor and the Director of Graduate Studies (DGS). These Field requirements were most recently updated in Fall 2006. Students already enrolled in the Ph.D.
program at that time may choose to fulfill either the old or the new requirements. The old requirements
can be found at this link . Students enrolling in Spring 2007 or later
must fulfull the new requirements. Field Requirements The Competency Requirement The Field believes that certain areas are so fundamental to Computer Science that all students should
be competent in them. Ph.D. candidates are expected to demonstrate competency in four areas of computer
science at the high undergraduate level: Theory, Programming Languages, Systems, and Artificial
Intelligence. This requirement can be discharged in any one of three ways: - by taking a course for grade credit (acceptable courses are listed below, subject to change);
- by taking the final exam in one of these courses, if permitted by the instructor; or
- by taking an independent exam in the area prepared by field members in that area, provided such an exam is available. Such exams are administered in January, just before the start of the spring semester.
Each area is required to offer the student 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: - Theory: CS 482 or CS 681
- Programming Languages: CS 411, CS 412, or CS 611
- Systems: CS 414
- Artificial Intelligence: CS 472
This requirement must be fulfilled by the time of the A exam. The Breadth Requirement Ph.D. students must take at least five 600-level Computer Science courses from at least three different
areas for grade credit. Courses taken to satisfy the competency requirement count. 700-level courses do
not count, nor do courses from other fields (however, see Exceptions below). The areas
and relevant courses are: - Algorithms and theory of computation: 681, 682, 683, 684, 685, 687;
- Artificial intelligence, including robotics, computer vision, natural language processing, information organization and retrieval, and machine learning: 630, 664, 671, 672, 674, 676, 677, 678;
- Systems, including concurrency, parallel computing, networks, distributed computing, and data management: 614, 615, 616, 619, 632, 633;
- Programming languages and methodology, including applied logic, automated reasoning, and compilers: 611, 612, 686;
- Scientific computing and applications, including graphics and computational biology: 621, 622, 624, 626, 627, 628, 665, 667.
These courses are subject to change. 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. 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 Ph.D. students are required to complete a significant CS project. One way to satisfy this project
requirement is 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, the chair
of your special committee needs to certify that your project satisfied the requirement. If you have
developed and debugged a lot of code, it can probably be used to satisfy 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
Computer Science 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, Mathematics, Cognitive Studies 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 finishing 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. While it is not required, it is strongly recommended that a draft
of your thesis be provided to your committee 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 in January. At the meeting, the progress of each student
is examined. 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? No. 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 these requirements as a way of
certifying that, despite the varied emphasis and coverage of undergraduate programs from which our students
come, our graduates are broadly educated. Besides, you do not need to retake the course, you only
need to take the exam. 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, if we are familiar enough with the institution you are transferring from to calibrate the quality
of the program. You should negotiate the transfer of credit with the DGS and your advisor. I am taking courses to satisfy the competency 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 other than those listed explicitly. 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 one's background would be a real problem in
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 specialize in. Those
who do not still have strong 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. 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 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 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, 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 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 that
occurs in January, 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/AI/concurrency/logic/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.
|