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 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 2009.
Students matriculating in Spring 2009 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 certain areas are so fundamental to Computer Science that all students should
be competent in them. 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 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: - Artificial Intelligence: CS 4700 (old 472)
- Programming Languages: CS 4110 (old 411), CS 4120 (old 412), or CS 6110 (old 611)
- Systems: CS 4410 (old 414)
- Theory: CS 4820 (old 482) or CS 6820 (old 681)
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 for grade credit. These
courses must cover at least four different areas and all three 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 and relevant courses are as follows: - Algorithms and theory of
computation: 6820 (old 681), 6810 (old 682), 6822 (old 683),
6840 (old 684), 6850 (old 685), 6830 (old 687).
- Artificial intelligence, including
robotics, computer vision, natural language processing, information
organization and retrieval, and machine learning: 6670 (old 664),
6762 (old 671), 6700 (old 672), 6740 (old 674), 6764 (old 676),
6766 (old 677), 6780 (old 678).
- Systems, including concurrency,
parallel computing, networks, distributed computing, and data
management: 6410 (old 614), 6460 (old 615), 6450 (old 619), 6320
(old 632), and 6322 (old 633).
- Programming languages and
methodology, including applied logic, automated reasoning,
and compilers: 6110 (old 611), 6120 (old 612), and 6860 (old
686).
- Scientific computing and
applications, including graphics and computational biology:
6210 (old 621), 6220 (old 622), 6240 (old 624), 6510 (old 626),
6522 (old 628), 6620 (old 665), and 6630 (old 667).
The research styles and relevant courses are the following: - Theoretical. The theoretical
research style is characterized by constructing formal models
of computation that are validated primarily by mathematical
proof.
Courses covering this style are: 6110 (old 611), 6820 (old
681), 6764 (old 676), 6766 (old 677), 6810 (old 682), 6822 (old
683), 6840 (old 684), 6850 (old 685), and 6830 (old 687).
- 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.
Courses covering this style are: 6320 (old 632), 6322 (old
633), 6410 (old 614), 6450 (old 619), 6460 (old 615), and
6464.
- 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.
Courses covering this style are: 6210 (old 621), 6220 (old
622), 6240 (old 624), 6522 (old 628), 6620 (old 665), 6630 (old
667), 6670 (old 664), 6762 (old 671), 6700 (old 672), 6740 (old
674), and 6780 (old 678).
The
following table summarizing the breadth requirements may be helpful, though the lists above are
definitive. Students must take five 6000-level courses, covering four rows of this table and all
three columns.
| Areas | | Research Styles |
|---|
| | Theoretical | Systems | Applied |
|---|
| Algorithms/Theory | 68xx | | |
|---|
| AI | 676x | | 67xx except 676x |
|---|
| Systems | | 632x, 64xx | |
|---|
| PL | 6110 | | |
|---|
| Sci. Comp. and Apps | | | 62xx, 65xx, 66xx |
|---|
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
at least two courses each semester in their first year or two at Cornell, mostly at the
6000+ level, making the breath requirement easy to fulfill. The list of courses that satisfy the area and research style
requirements of the breadth requirement are subject to
change as the faculty develops new courses. 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 6320 (old 632), CS 5430 (old 513), CS 5410 (old 514), and CS
6670 (old 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 CS 4410 (old 414) and the graduate courses that correspond to it, CS 5410 (old 514) and CS 6410 (old 614). CS 4410 (old 414), 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 CS 5410 (old 514) and CS 6410 (old 614) are also systems courses,
these tend to specialize on only a few topics, and in fact the reason for the CS 4410 (old 414) systems area
requirement is precisely so that courses like CS 6410 (old 614) can assume that students have a broad grounding.
One could earn a high grade in CS 6410 (old 614) 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 CS 6410 (old 614) to
be an acceptable substitute for CS 4410 (old 414) 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.
|