F. B. Schneider, chair; E. Andersen, G. Bailey, K. Bala, S. Belongie, D. Bindel, K. Birman, C. Cardie, R. L. Constable, D. Estrin, D. Fan, N. Foster, J. Gehrke, C. Gomes, D. Greenberg, D. Gries, J. Halpern, J. E. Hopcroft, D. Huttenlocher, D. James, T. Joachims, J. Kleinberg, R. Kleinberg, R. Knepper, D. Kozen, L. Lee, S. Marschner, A. Myers, R. Pass, A. Saxena, F. B. Schneider, B. Selman, D. Shmoys, E. G. Sirer, N. Snavely, K. Sridharan, D. Steurer, E. Tardos, R. Tate, C. Van Loan, H. Weatherspoon, W. White, R. Zabih.
CS majors take courses covering algorithms, data structures, logic, programming languages, systems, and theory. Electives include artificial intelligence, computer graphics, computer vision, cryptography, databases, networks, and scientific computing. Requirements include:
Two semesters of introductory computer programming:
A five-course computer science core:
Three 4000+ level computer science electives:
(CS 4090 and CS 4999 not allowed)
A computer science project course:
Three 3000+ level courses:
(only one of ENGRD 2700 or MATH 2930 may be counted) that are technical in nature, as determined by the major.
A three-course “external specialization” in a topic area other than computer science:
all numbered 3000-level or greater
An elective requirement consisting of a single 3+ credit course or a combination of courses coming to 3+ credits total:
Roughly speaking, all academic courses (inside or outside of CS) count. No PE courses, courses numbered 10xx, or ROTC courses below the 3000-level are allowed.
All the major electives described above must be courses of at least 3 credits, with the exception of the CS project course, which is at least 2 credits, or as otherwise specified.
Additionally, students’ course selections must satisfy the requirements of at least one “vector” or CS-centric specialization, defined by the department. The set of vectors at the time of this writing include artificial intelligence, computational science and engineering, graphics, network science, programming languages, software engineering, systems/databases, theory, and a broad “Renaissance” vector. See www.cs.cornell.edu/undergrad for the requirements of each vector.
The program is broad and rigorous, but it is structured in a way that supports in-depth study of outside areas. Intelligent course selection can set the stage for graduate study and employment in any technical area and any professional area such as business, law, or medicine. With the advisor, the Computer Science major is expected to put together a coherent program of study that supports career objectives and is true to the aims of liberal education.
All potential affiliates are reviewed on a case-by-case basis relative to the following criteria:
Courses used in the affiliation GPA computations may be repeated if the original course grade was below a C. The most recent grade will be used for all repeated courses. Qualifying courses must be taken at Cornell.
Departmental honors in Computer Science is granted to students who have maintained a cumulative GPA greater than or equal to 3.5 and completed a set of coherent courses and research activities that satisfy the following requirements.
The program consists of at least 9 credits beyond the minimum required for graduation, as follows:
- at least one CS course (at least 3 credit hours) at or above the 5000 level with a grade of A– or better; no seminars.
- at least two 3-credit semesters of CS 4999 (Independent Reading and Research) with a CS faculty member, with grades of A– or better each semester.
Latin Designations (appended to the degree), awarded by the field of Computer Science for all who qualify as stated above, are based on the final cumulative GPA, as follows:
- cum laude, 3.50 or above
- magna cum laude, 3.75 or above
- summa cum laude, 4.00 or above
Honors courses may not be used to satisfy the CS 4000+ elective requirement, the CS project requirement, the technical electives, the 3+ credit elective, or a student’s first vector. See the CS undergraduate web site for more information on eligibility: www.cs.cornell.edu/undergrad.
Computer Science Undergraduate Minor:
The Computer Science Minor is for students who anticipate that computer science will have a prominent role to play in their academic and professional career. It is designed for students in all majors to supplement their primary studies. Computer science is applicable to almost any major and career choice; from Communication, Psychology, and Law to Architecture, Music, and Engineering. The theoretical foundations of information and computation provide students with the appropriate skills for academic and professional careers. Completion of the CS minor, with a well-selected set of classes, can serve as good preparation for further study through our 2-semester CS Masters of Engineering (M.Eng) program or our 4-semester Master of Science program.
The CS Minor is available to students in the College of Arts and Sciences, CALS, AAP, Engineering, Hotel Administration, Human Ecology, and ILR. Students should visit www.cs.cornell.edu/undergrad for the most up-to-date description of the minor and its requirements.
Computing in the Arts Undergraduate Minor:
A minor in Computing in the Arts with an emphasis on computer science is available both to Computer Science majors and to students majoring in other subjects. For more information, see Computing in the Arts Undergraduate Minor .