design

Choosing Your Electives

  1. Requirements for both CS Majors include ten elective courses broken down into these categories:
  2. Both majors also have a "free elective" component. The Major Approved Elective is any three credits approved by your CS major advisor. In addition, in Engineering the free electives are are the Advisor-Approved Electives while in Arts they are the College Electives.
  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.
  5. Vectors. Each vector is a collection of courses representing a key "direction of study" within computer science.

CS Electives

All CS majors are required to take three Computer Science courses at or above the 4000 level. Note: CS 4999 can not be used as a CS elective. The three CS 4000+ (4000- to 6000-level) electives are normally selected from the following group:

Course Number Course Name
CS 4110 Programming Languages & Logics
CS 4120 Introduction to Compilers
CS 4300 Information Retrieval
CS 4302 Web Information Systems
CS 4320 Introduction to Database Systems
CS 4420 Computer Architecture (must take as CS)
CS 4620

Computer Graphics I

CS 4670 Introduction to Computer Vision

CS 4700

Foundations of Artificial Intelligence
CS 4740 Introduction to Natural Language Processing
CS 4758 Robot Learning
CS 4780 Machine Learning
CS 4810 Intro Theory of Computing
CS 4812 Quantum Computing
CS 4830 Introduction to Cryptography
CS 4850 Mathematical Foundations for the Information Age
CS 4860 Applied Logic
CS 5150 Software Engineering
CS 5220 Applications of Parallel Computers
CS 5300 Architecture of Large-Scale Information Systems
CS 5412 Cloud Computing
CS 5414 Distributed Computing
CS 5420 Parallel Computer Architecture (must take as CS)
CS 5430 System Security
CS 5625 Interactive Computer Graphics
CS 5643 Physically Based Animation for Computer Graphics
CS 5722 Heuristic Methods for Optimization (must take as CS)
CS 5724 Evolutionary Computations
CS 6210 Matrix Computations
CS 6320 Advanced Database Systems
CS 6410 Advanced Systems
CS 6640 Computational Photography
CS 6740 Advanced Language Technologies
CS 6810 Theory of Computing
CS 6820 Analysis of Algorithms

 

|Top of Document|


The CS Project

The CS project requirement can be fulfilled with any one of the following:

CS 4121 - Practicum in Compilers

CS 4321 - Practicum in Database Systems

CS 4411 - Practicum in Operating Systems

CS 4450 - Computer Networks (not currently offered)

CS 4621 - Computer Graphics Practicum

CS 4701 - Practicum in Artificial Intelligence

CS 4758 - Robot Learning

CS 5150 - Software Engineering

CS 5412 - Cloud Computing

CS 5414 - Distributed Computing Principles

CS 5431 - Practicum in System Security

CS 6670 - Machine Vision

A grade of C- or better is required.

|Top of Document|


The Technical Electives

The Technical Electives are three 3000+ level courses. Normally these courses are chosen from application areas such as Biology, Chemistry, Physics, Mathematics, Economics, Linguistics, and all the Engineering fields including CS. The courses must engage the student in a technical, quantitative way. Courses that simply involve writing about science or technology do not qualify, e.g., Government 3071 (Introduction to Public Policy) or Communications 3520 (Scientific Writing for the Mass Media).

A grade of C- or better is required. Courses must be 3 or more credit hours.

Still not sure? Here is more on Technical Electives.

|Top of Document|


The External Specialization

The External Specialization involves nine or more credit hours at the 3000+ level. Absolutely no CS courses are allowed. 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 he is qualified to take. That student must then find a third course, perhaps one in another field, that will fill out his 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.

We mention four very interesting "official specializations" in the Arts College. These include the concentration in Cognitive Studies and the concentration in Science and Technology Studies. The Information Science concentration, and the Computing and the Arts concentration are also available to students. The word "concentration" is Arts College jargon for "specialization" and the word "official" means that completion of the concentration requirements is certified on the transcript. These two concentrations have deep connections to CS and should be explored by students who want a particularly broad education.

Though the External Specialization has traditionally been thought of as a "minor" within the field of Computer Science, it should not be construed as such. Many of Cornell's undergraduate colleges offer "official" minors or concentrations in second disciplines, including Computer Science. For details on what it takes to complete a minor/concentration in one of these second disciplines, contact the offering department.

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.

A grade of C- or better is required. Courses used for the External Specialization must be 3+ credit hours each, totaling at least 9 credit hours.

|Top of Document|


The Major Approved Elective

The major elective is any course or courses approved by your CS major advisor. This elective requirement can be met by multiple courses totalling 3 credits, or one course of 3+ credit hours. Phys Ed, courses numbered 10xx, and ROTC courses below the 3000-level, do not qualify for academic credit and can not be used toward the degree requirements in CS.

|Top of Document|


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. It makes good sense to use these electives for lower-level introductory courses that may be required prerequisites for the 3000+ technical elective courses and the courses used to satisfy the Specialization. Phys Ed, courses numbered 10xx, and ROTC courses below the 3000-level, do not qualify for academic credit and can not be used toward the degree requirements in CS. Up to 6 credits of advisor approved electives may be allowed for ROTC courses at the 3000-level or above.

|Top of Document|


Free College Electives (Arts and Sciences)


Fifteen credit hours of courses outside CS. The courses used in this category cannot be used fulfill any other degree requirement.

Note: It makes good sense to use the Arts electives to qualify for upper-level courses in other categories. For example, Psych 3470 "Psychology of Visual Communications" has Psych 1101 as a prerequisite. Psych 1101 could be used to fulfill 3 credits of Arts Electives, while Psych 3470 could be used in a Psych Specialization.

|Top of Document|


Extra Courses

Extra courses are those not being used to fulfill any specific undergraduate degree requirements, however, they should not be thought of as wasted credit hours. Your education is made up of many elements. Some elements are graded and help to indicate progress in specific subject areas. Other elements are not graded and do not show up on your transcript. Each element plays a role in the overall process, however. So too it is with extra courses. While they represent graded work on the transcript, their importance lies in the fact that they ARE a part of your overall education, and not whether they fulfill a specific requirement.

|Top of Document|


Vectors

The grade point average is but one way to measure the quality of an undergraduate record. An equally important attribute concerns depth-of-education, something that is best measured by the choice of elective courses. While required core CS courses ensure breadth-of-education and set the stage for more specialized work, it is through the choice of electives that you can communicate an appealing level of curiosity and a readiness for the future.

The newly redesigned CS major has a streamlined set of core courses to allow for more choices in electives, and a collection of vectors that promote coherent, in-depth study. A vector has a magnitude (typically four to five courses, which may be internal or external to CS), and a direction representing a "line of inquiry" within CS. For the full explanation of the vector requirements, visit the Vectors webpage.

|Top of Document|