1. Requirements for both CS Majors include ten elective courses broken down into these categories:
    • The CS Electives involve three 4000-level or above computer science courses. CS courses cross-listed with another department must be taken under the CS listing to satisfy a CS elective slot.Note: CS 4090, CS 4998, and CS 4999 cannot be used asa CS elective.
    • The CS Project involves a 4000-level or above practicum or project-intensive course.
      1. CS 4000+ practicum : 4000-level course that ends with a 1 (CS 4121, CS 4321, CS 4411, CS 4621, CS 4701)
      2. Project Intensive Courses: CS 3152, CS 4152, CS 4154, CS 4740, CS 5150, CS 5412, CS 5414, CS 5431, CS 5625
    • The Technical Electives involve three 3000-level or above (3+ credits each) courses with technical content.
    • The External Specialization involves three related 3000-level or above (3+ credits each) courses.
  2. Both majors also have a "free elective" component. This includes the Major-Approved Elective (any three credits approved by your CS major advisor) and either the Advisor-Approved Electives (in Engineering). No more than 6 credits, in total, of project team work can be used in these areas.
  3. In reading the details below, understand that when we say "a 3000+ course" we mean that the course number is "3000 or above." And when we refer to a course in this context we do not mean seminars like CS 7x90.
  4. Extra Courses. In addition to those courses being used to fulfill college or field requirements, it is not unusual for students to have "extra" courses that are not used toward any degree or major requirements.

The External Specialization

The External Specialization involves nine or more credit hours at the 3000+ level. Absolutely no CS courses are allowed, nor do we allow research, independent study, project team or TA credits in this area. The three courses must be related to each other. Frequently, the three courses are from the same department, e.g., OR&IE 3300 (Optimization I), OR&IE 3310 (Optimization II), and OR&IE 4330 (Discrete Models). However, a great strength of Cornell is the multitude of interdisciplinary threads that cut across departmental boundaries. Thus, Psychology 4150 (Concepts, Categories, and Word Meanings), Philosophy 3320 (Philosophy of Language), and Linguistics 5530 (Representation of Structure in Vision and Language) define an acceptable Specialization.

Not all fields are created equal, and it may be more of a challenge finding 3000+ level courses in some fields than in others. Careful planning and creative course selection is especially important when you find that a field has limited offerings at or above the 3000 level. A student specializing in Fine Arts, for example, might find only two 3000+ level courses offered by that department that they are qualified to take. That student must then find a third course, perhaps one in another field, that will fill out his/her specialization. Another common example of this can be found in the field of neurobiology, where much of the "junior" level work is numbered at the 2000 level. Regardless of these departmental variances, only 3000+ level courses will be counted toward the External Specialization.

Finally we mention that the courses used for your External Specialization do not have to be technical in nature, and they do not have to have an explicit connection to CS. It is an arena wherein you can tap the great intellectual resources of the University. 

The Major-Approved Elective

The major elective is any course or courses approved by the CS major (advising office). This elective requirement can be met by multiple courses totalling 3 credits, or one course of 3+ credit hours. Please note that the following do NOT qualify for academic credit and therefore CANNOT be used toward degree requirements in CS: Phys Ed courses, courses numbered 10xx, AEW courses, ROTC courses (unless cross-listed with an academic department).

The Advisor-Approved Electives (Engineering)

Six credits of coursework from any academic program at Cornell.

"Advisor-Approved" means that you have justified your selection to your advisor and that your advisor has approved the selection. You may use these electives for lower-level introductory courses, such as those that are required prerequisites for your 3000+ technical electives or your 3000+ External Specialization courses. Please note that the following do NOT qualify for academic credit and therefore CANNOT be used toward degree requirements in CS: Phys Ed courses, courses numbered 10xx, AEW courses, ROTC courses below the 3000-level (up to 6 credits of advisor approved electives may be allowed for ROTC courses at the 3000-level or above).

Advice on Choosing Electives

For suggestions on how to select a set of electives that reflect one of a number of coherent, recognized sub-areas of study in computer science, see the material on Vectors. "Vectors" are completely optional, and the department does not track whether you complete one or not.