The Computer Science major resides in both the College of Arts and Science and the College of Engineering.
Computer science 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 that are common between the degree program in the College of Arts and Sciences and the College of Engineering are as
|a calculus sequence (note different college requirements)||MATH 1110-1120/1220-2210 (A&S) or MATH 1910-1920-2940 (ENGR or A&S)|
|introductory programming||CS 111x* (CS 1110, 1112, 1114, or 1115) and CS 2110 (or CS 2112).
* Engineering students that took a CS 111x course prior to fall 2012 must also take CS 1130 or 1132
|a five-course computer science core||CS 2800, CS 3110, CS 3410 or 3420, CS 4410, CS 4820|
|three 4000+ CS electives each at three credits||CS 4090 and 4999 NOT allowed|
|a CS project course||CS 4121, 4321, 4411, 4621, 4701, 4758, 5150, 5152, 5412, 5414, 5431, 5625, 5643, or 6670|
|three 3000+ courses that are technical in nature (3 credit min per course)|
|three 3000+ related courses that are outside of Computer Science and total at least nine credits (3 credit min per course) external specialization|
|3 credits major-approved elective(s)|
In addition, students' course selections must satisfy the two requirements listed below. The two requirements below are distinguished because a single course can satisfy a requirement below andanother requirement, such as the major-internal ones listed above or College-level requirements,simultaneously.
- a probability course: one of BTRY 3080, CS 4850, ECE 3100, ECON 3130(beginning fall 2013)/ ECON 3190(prior to fall 2013), ENGRD 2700 or MATH 4710. (Choosing a 3000+ level course among these options is strongly recommended.)
- complete one vector. Vectors are CS-centric specializations. The current set of vectors include artificial intelligence, computational science and engineering, data-intensive computing, graphics, human-language technologies, network science, programming languages, security and trustworthy systems, software engineering/code warrior, systems, theory, and a broad Renaissance vector. Detailed information on the requirements of each vector is available here.
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 CS major is expected to put together a coherent program of study that supports career objectives and is true to the aims of liberal education.
- A Bachelors of Science for students in the College of Engineering.
- A Bachelors of Arts for students in the College of Arts and Sciences.
For detailed listings of the course requirements, see the Engineering Checklist and the Arts Checklist. The two degree programs are similar in that they have the same Computer Science component and that they share the same learning outcomes. However, the two colleges in question have requirements that reflect different notions of liberal education. For example, the College of Arts and Sciences has a foreign language requirement while in the College of Engineering all students are required to take chemistry and physics.
The more suitable program depends how these requirements sit with your own ideals and the nature of your secondary interests. For example, it is easier for a CS major in Engineering to take a lot of courses in hardware and the supporting technologies. On the other hand, a CS major in Arts and Sciences can more readily pursue a concentration in linguistics.
Neither program has a particular advantage from the standpoint of employment or graduate school.
Students in the College of Arts and Sciences can affiliate in their third semester but are expected to start the process no later than their fourth semester.
- Applications received between January 1 and February 1st will be processed by March 1st.
- Applications received between February 2nd and June 1st will be held for processing until June.
- Application received between June 2nd and September 14th will be processed by October 15th.
- Applications received between September 15th and December 31st will be held for processing until January.
All potential affiliates are reviewed on a case-by-case basis relative to the following criteria:
- at least a grade of C (not C-) in all completed CS and math courses
- a GPA of 2.5 or better in CS 2110/2112 and 2800
- a GPA of 2.5 or better in Math 1120/1220/1920, and CS 2800.
Good grades in critical courses may be considered to offset deficiencies in meeting the above criteria.
|Critical CS Courses||CS 2110 or 2112; CS 2800, CS 3110, CS 3410 or 3420; CS 4410, and CS 4820|
|Critical Math Courses||Math 1120, 1220 or 1920; MATH 2210, 2230 or 2940; MATH 3360, MATH 3560, MATH 4710, BTRY 3080, CS 2800, CS 4850, ECON 3130(beginning fall 2013)/ ECON 3190(prior to fall 2013), ECE 3100 and ENGRD 2700|
Courses used to determine affiliation may be repeated if the original course grade is below a "C". The most recent grade is used when a course is repeated. Qualifying courses must be taken at Cornell.
The CS Undergraduate Committee may postpone an affiliation decision in order to include grades from specific critical courses.
Students who do not meet these requirements are discouraged from attempting affiliation with the major. The CS major can be exceptionally rigorous for students who are not suitably prepared for the academic requirements of the program.
Students who have been rejected from the major are very strongly discouraged from reapplying. If you do not meet admission standards for the CS major you will need to apply for admission to another major at Cornell. Students who decide to reapply for the major after being rejected once will be reconsidered if they have met all standards of admission for the major. No student will be considered for admission more than twice.
A number of students have found it beneficial to major in another field while maintaining a strong concentration in CS. Students who take this route will often have a higher GPA than if they had stayed in CS. Many non-CS majors who have concentrated in CS are recruited just as vigorously as full CS majors. The CS minor is an option for students who wish to have this work acknowledged on their Cornell trasncript. ((Note: CS majors and Engineering students majoring in Information Science, Systems and Technology (ISST), are not eligible to participate in the CS Minor.)
The steps to be followed are listed below:
NOTE: You are expected to fill out the field application forms completely. If you leave out information your affiliation with the field could be delayed.
- READ the requirements for the major and make certain that you understand the criteria for "Good Standing" in the major.
- Obtain CS AFFILIATION FORMS from the CS Undergraduate website.
- Bring the completed forms to the CS Undergraduate Office in (110 Gates Hall). At that time you may schedule an appointment with the Advising Coordinator to review your record and plans. This is especially recommended if you intend to double major or if your academic record needs clarification.
If you have been accepted into the major you will receive notice via e-mail, wherein details about your new CS advisor and your CSUG Lab account will be provided. Before meeting with your CS faculty advisor for the first time, you should complete an academic plan to the best of your ability.
Students who are not affiliated with the program by the end of their 4th semester may be prevented from registering for the fifth term and should discuss their situation with their college's advising office.
CS majors will find it useful to subscribe to the Association of Computer Science Undergraduates listserv. This important listserv is used by the department to communicate announcements of interest to undergraduates, including research opportunities and job openings. To subscribe: Send email to listproc "at" cornell.edu. The body of your message should say "SUBSCRIBE ACSU-L".
We encourage all students with an interest in CS to join the ACSU. Visit the ACSU website for information about the ACSU and about applying to become a member.
Violations of the Cornell University Code of Academic Integrity occurring in Computer Science courses are taken very seriously by the Computer Science faculty. Therefore, it is necessary to impress upon students the gravity of violations of the Code. The following are excerpts from a longer version of theCornell University Code of Academic Integrity. The exclusion of any part does not excuse ignorance of the Code.
Absolute integrity is expected of every Cornell student in all academic undertakings; he/she must in no way misrepresent his/her work fraudulently or unfairly advance his/her academic status, or be a party to another student's failure to maintain academic integrity. The maintenance of an atmosphere of academic honor and the fulfillment of the provisions of this Code are the responsibilities of the students and faculty of Cornell University. Therefore, all students and faculty members shall refrain from any action that would violate the basic principles of this Code.
- A student assumes responsibility for the content and integrity of the academic work he/she submits, such as papers, examinations, or reports.
- A student shall be guilty of violating the Code and subject to proceedings under it if he/she:
- knowingly represents the work of others as his/her own.
- uses or obtains unauthorized assistance in any academic work.
- gives fraudulent assistance to another student.
- fabricates data in support of laboratory or field work.
- forges a signature to certify completion or approval of a course assignment.
- in any other manner violates the principle of absolute integrity.
Specific Remarks for Students in CS Courses
Unless otherwise specified by the individual professor, the work you do in Computer Science courses is expected to be the result of your individual effort - the use of a computer in no way modifies the normal standards of the above Code. You may discuss work with other students, and give or receive "consulting" help from other students, but such permissible cooperation should never involve one student having in his or her possession a copy of all or part of another student's assignment - regardless of whether that copy is on paper, on a computer disk, or in a computer file. This implies that there is no legitimate reason to send a copy of a program from one computer account to another, or to be logged-on to another student's account.
Discussion of general strategy or algorithms is permissible, but you may not collaborate in the detailed development or actual writing of an assignment. It is also your responsibility to protect your work from unauthorized access. It is inadvisable to discard copies of your programs in public places. This applies to both hand-written and programming assignments.
The penalty for any violation of this Code in Computer Science courses may be failure in the course. This includes collaboration, providing a copy, or accepting a copy of work that is expected to be individual effort.
Computer accounts are provided for course work only. They are not private accounts; they belong to the Department of Computer Science and the use of these accounts will be monitored in various ways. Accounts that are abused will be withdrawn.