Arts vs. Engineering Degree · Becoming a CS Major · Academic Integrity Code

General Description

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 for the CS major in either the College of Arts and Sciences or the College of Engineering are as follows:

  • a calculus sequence (note different college requirements)
    • Math 1110-1120-2210 (A&S)
    • Math 1910-1920-2940 (ENGR or A&S)
  • Computer Science course requirements (see chart for prerequisite structure of CS courses):
  • introductory programming
    • CS 111x (CS 1110 or 1112)
    • CS 2110 (or CS 2112) or equivalent (i.e. ECE 2400/ENGRD 2140)
(For pre-fall 2024 matriculants only)
  • Five CS Core courses:
    • CS 2800 or CS 2802 - Discrete Structures
    • CS 3110 - Data Structures and Functional Programming
    • CS 3410 or 3420 - Digital Systems
    • CS 4410 - Operating Systems or CS 4414  - Systems Programming
    • CS 4820 - Theory of Algorithms
  • Three CS electives:
    • Three CS 4000+ courses (3+ credits each). CS 4090, CS 4998, and CS 4999 are NOT allowed. CS 3700 and CS 3780 are allowed.

In addition, students' course selections must satisfy the requirement listed below. Note that courses used to satisfy this requirement are not extra but can be incorporated into the major requirements listed above, where applicable.

  • a probability course: one of BTRY/STSCI 3080, CS 4850, ECE 3100, ECON 3130, ENGRD 2700 or MATH 4710. (Choosing a 3000+ level course among these options is strongly recommended.)

(For fall 2024 matriculants and later)

  • Six CS Core courses:
    • CS 2800 or CS 2802 - Discrete Structures
    • CS 3110 - Data Structures and Functional Programming
    • CS 3410 or CS 3420 - Digital Systems
    • CS 3700 - Foundations of AI, Reasoning and Decision-Making or CS 3780  - Introduction to Machine Learning
    • CS 4410 - Operating Systems or CS 4414  - Systems Programming
    • CS 4820 - Theory of Algorithms
  • Two CS electives:
    • Two CS 4000+ courses (3+ credits each). CS 4090, CS 4998, and CS 4999 are NOT allowed. CS 3700 or CS 3780 allowed if not used in CS core.
(For all matriculants)
  • One CS Practicum or Project course:
    • Accepted courses are CS practicums (CS 4xx1), or CS 3152, CS 4152, CS 4154, CS 4740, CS 4752, CS 5150, CS 5152, CS 5412, CS 5414, CS 5431, CS 5625, or CS 5643.
  • Three Technical electives:
    • Three 3000+ courses (3+ credits each) with qualifyig prereq. List of qualifying prerequisites available here. Up to two CS 4999 (other research or independent studies may be submitted for department review). At most one 2000-level course allowed.
  • Three External Specialization courses:
    • Three 3000+ courses (3+ credits each) from the same subject area. CS courses are not allowed. INFO 3300, INFO 4300, INFO 4302, INFO 5300, and LING 4474 are not allowed, nor do we allow research, independent study, project team or TA credits in this area.
  • Major-Approved elective(s):
    • At least 3 credits total. All academic courses are allowed, except: PE courses, courses numbered 10xx, Engineering AEW's, or ROTC courses (unless cross-listed with an academic department).

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. Please note that completion of a Vector in not required and vector completion is not confirmed nor noted on the transcript.

Two undergraduate degrees are offered:

Neither program has a particular advantage from the standpoint of employment or graduate school.

Department Policy on Academic Integrity

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 the Cornell University Code of Academic Integrity. The exclusion of any part does not excuse ignorance of the Code.

Principle

Absolute integrity is expected of every Cornell student in all academic undertakings; students must in no way misrepresent their work fraudulently or unfairly advance their 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.

General Responsibilities

  1. A student assumes responsibility for the content and integrity of the academic work they submit, such as papers, examinations, or reports.
  2. A student shall be guilty of violating the Code and subject to proceedings under it if they:
    • knowingly represents the work of others as their 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.