Undergraduate Program

Computer science majors at Columbia study an integrated curriculum, partially in areas with an immediate relationship to the computer, such as programming languages, operating systems, and computer architecture, and partially in theoretical computer science and mathematics. Thus, students obtain the background to pursue their interests both in applications and in theoretical developments.

Practical experience is an essential component of the computer science program. Undergraduate students are often involved in advanced faculty research projects using state-of-the-art computing facilities. Qualified majors sometimes serve as consultants at Columbia University Information Technology (CUIT), which operates several labs with microcomputers and terminals available at convenient locations on the campus.

Upper-level students in computer science may assist faculty members with research projects, particularly in the development of software. Ongoing faculty projects include algorithmic analysis, computational complexity, software tool design, distributed computation, modeling and performance evaluation, computer networks, computer architecture, CAD for digital systems, computer graphics, programming environments, expert systems, natural language processing, computer vision, robotics, computational biology, computer security, multicomputer design, user interfaces, VLSI applications, artificial intelligence, combinatorial modeling, virtual environments, and microprocessor applications. Students are strongly encouraged to arrange for participation by consulting individual faculty members and by attending the Computer Science Research Fair held at the beginning of each semester.

Most graduates of the computer science program at Columbia step directly into career positions in computer science with industry or government, or continue their education in graduate degree programs. Many choose to combine computer science with a second career interest by taking additional programs in business administration, medicine, or other professional studies.

For further information on the undergraduate computer science program, please see the home page and the Quick Guide.


The CS Major Requirements

The Undergraduate program requires at minimum 62 points (including ENGI E1006 as a prerequisite to the major) and is composed of four basic components: the Computer Science Core (7-8 courses), the Area Foundation Courses (4 courses), the Computer Science Electives (4 courses), and the General Technical Electives (4 courses). Students are encouraged to work with their faculty adviser to create a plan tailored to fit their goals and interests. The department webpage provides several example programs for students interested in a variety of specific areas in computer science.

Note: All courses toward the CS major must be taken for a letter grade. A maximum of one course worth no more than 4 points passed with a grade of D may be counted towards the major.


Prerequisite to the CS Major

ENGI E1006 Introduction to computing for engineers and applied scientists. All CS majors should take this course in their first or second semester.


Mathematics Requirements

Calculus Requirement
Take all three of the following:

  1. MATH UN1101 (3)
  2. MATH UN1102 (3)
  3. APMA E2000 (4)

Linear Algebra Requirement
Select one of the following courses:

  • COMS W3251 (4)
  • MATH UN2010 (3)
  • MATH UN2015 (3)
  • MATH UN2020 (3)
  • APMA E2101 (3)
  • APMA E3101 (3)

Probability/Statistics Requirement
Select one of the following courses:

  • IEOR E3658 (3)
  • STAT UN1201 (3)
  • STAT GU4001 (3)
  • MATH UN2015 (3)

Note: Math UN2015 Linear Algebra and Probability may simultaneously satisfy both linear algebra and probability/statistics requirements without the need to take additional classes thus reducing the total number of courses required.


The Computer Science Core

Take all six of the following courses:

1. COMS W1004 or W1007 (3)
2. COMS W3134 (3) or W3137 (4)
3. COMS W3157 (4)
4. COMS W3203 (4)
5. COMS W3261 (3)
6. CSEE W3827 (3)


Area Foundation Courses

Select four from the following list:

  • COMS W4111 (3)
  • COMS W4113 (3)
  • COMS W4115 (3)
  • COMS W4118 (3)
  • CSEE W4119 (3)
  • COMS W4152 (3)
  • COMS W4156 (3)
  • COMS W4160 (3)
  • COMS W4167 (3)
  • COMS W4170 (3)
  • COMS W4181 (3)
  • CSOR W4231 (3)
  • COMS W4236 (3)
  • COMS W4701 (3)
  • COMS W4705 (3)
  • COMS W4731 (3)
  • COMS W4733 (3)
  • CBMF W4761 (3)
  • COMS W4771 (3)
  • CSEE W4824 (3)
  • CSEE W4868 (3)


Computer Science Electives

Any four COMS courses, or jointly offered computer science courses such as CSXX or XXCS courses, that are worth at least 3 points and are at the 3000-level or above.


General Technical Electives

Four General Technical Elective (GTE) courses are required. GTE courses must be worth at least 3 points, at the 3000-level or above, and must be selected from the list of departments below. There are no exceptions.

  • Any SEAS department
  • Astronomy
  • Biomedical Informatics
  • Biological Science
  • Chemistry
  • Earth and Environmental Sciences
  • Ecology, Evolution, and Environmental Biology
  • Mathematics
  • Physics
  • Psychology
  • Statistics
  • Economics


Undergraduate Thesis

A student may, with advisor approval, choose to complete a thesis. A thesis may be used in place of up to 6 points from the Computer Science Electives requirement. A thesis may not be used in place of any Area Foundation Courses. A thesis consists of an independent theoretical or experimental investigation of an appropriate problem in computer science carried out under the supervision of a Computer Science Department faculty member. A formal written report is mandatory and an oral presentation may also be required.



Note: No more than 6 points of project/thesis courses (COMS W3902, W3998, W4901) can count toward the major. COMS W3999 Fieldwork cannot be used as a CS Elective. No more than one course from each set below may be applied towards the computer science major:

  • IEOR E3658, STAT UN1201, STAT GU4001, MATH UN2015
  • MATH UN2015, MATH UN2010, APAM E3101, COMS W3251
  • COMS W4771, COMS W4721, STATS GU4241


Advanced Placement

Students who pass the Computer Science Advanced Placement (AP) Exam with a 4 or 5 will receive 3 points of credit and an exemption from COMS W1004.