Major: Computer Science (CS)
Offered by: Department of Computer Science
303 Upson Hall, 255.0982, www.cs.cornell.edu/degreeprogs/ugrad/
The CS curriculum covers both the theory of algorithms and computing and their applications
in science, engineering, and business. Students learn algorithmic ways of thinking
and how to bring them to bear on a wide range of problems. They also study the elements
of computing and information technology such as system design, problem specification,
programming, system analysis and evaluation, and complex modeling.
- ENGRD 2110: Object-Oriented Programming and Data Structures (required), or ENGRD 2112: Object-Oriented Design and Data Structures-Honors
Required Major Courses
- CS 2800: Discrete Structures
- CS 3110: Data Structures and Functional Programming
- CS 3410: Computer System Organization and Programming, or CS 3420/ECE 3140: Embedded Systemsd
- CS 4410: Operating Systems
- CS 4820: Introduction to Analysis of Algorithms
- Three CS electives numbered ≥4000; 3-credit minimum per course; CS 4090 and CS 4999 not allowed
- One CS project course numbered ≥4000; 2-credit minimum
- Three Major-Approved Technical Electives numbered ≥3000; 3-credit minimum per course; CS 4090 not allowed
- Major-Approved Free Elective; total 3 credits
- Two approved electives; total 6 credits
- Three related, upper-level elective courses numbered ≥3000 (External Specialization); 3-credit minimum per course; CS courses not allowed
- May substitute BTRY 3080, ECON 3130, MATH 4710, PHYS 2214, or PHYS 2218 for CHEM 2080. MATH 2930 is a pre- or corequisite for PHYS 2214.
- CS 2112 is an honors version of CS 2110.
- In addition to the first-year writing seminars, a technical writing course must be taken as an engineering distribution, liberal studies, approved elective, or Major course.
- ECE/ENGRD 2300 is a prerequisite for ECE 3140.
- Major electives include CS 4000+ level electives, the CS 4000+ level project course, Technical Electives, the External Specialization, and the Major-approved elective. Courses for a CS vector and the probability requirement may also be included in these categories. All Major Electives must be courses of at least 3 credits with the exception of the CS project course, which is at least 2 credits, or the Major-approved elective, which must total 3 credits.
- This engineering checklist is formatted to conform to the general specifications of the College of Engineering. We strongly recommend that you visit 303 Upson Hall for an official Computer Science Major checklist. This information can also be obtained by visiting the Computer Science web site (www.cs.cornell.edu/ugrad).
- All CS 4000+ Electives must be taken under the CS rubric. CS 4090 and CS 4999 NOT allowed.
- The Major program includes nine (9) credits of courses outside the Major. These courses are satisfied by the External Specialization. The three courses must be related to each other (3000+ level and 3 credit minimum per course). Courses not allowed in the External Specialization are: any CS course, LING 4474, INFO 3300, INFO 4300, INFO 4302, and INFO 5300.
- Three 3000+ level courses of at least 3 credits each (including ENGRD 2700 or MATH 2930, but not both) that are technical in nature, as determined by the Major. CS 4090 is not allowed. At most, two CS 4999 classes may be taken. For other independent study options, visit the CS office in 303 Upson.
- 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.
- Students’ course selections must also include one of BTRY 3080, CS 4850, ECE 3100, ECON 3130, ENGRD 2700, or MATH 4710. CS Majors can use ECE 3100 as a substitute for ENGRD 2700 in satisfying the engineering distribution requirements.
- 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/ugrad for the requirements of each vector.