Undergrad FAQ

If you are a SEAS student, you do not need to declare your major until your third semester. If you are a CC student, you do not have to declare until your fourth semester. In order to maximize efficiency, however, you should start taking the introductory C.S. courses in your first two semesters.
By the end of your sophomore year.

  • Participation in the C.S. minor must be approved by the C.S. Undergraduate Program Director (currently Prof. Adam Cannon).
  • You can declare your major online or by filling out a declaration form available from your class center.
  • You have several options depending on the depth of your programming background. You should definitely see a CS faculty advisor to tailor a solution that fits your needs. Here are some possibilities:
    • Enroll in a 1-point COMS W3101 course in Java and then take COMS W1007 or COMS W3137 depending on your background.
    • Sit-in COMS W1004 and then enroll in COMS W1007 or COMS W3137 depending on your background.
    • You may immediately enroll in COMS W3203.
    • If you have already had a Discrete Math course and Data Structures course in any language, you may enroll in COMS W3261.
    • You may take COMS W3157 provided you have had two semesters of programming experience in any object-oriented language.

No, COMS W1004 etc., are prerequisites for the more advanced courses.

These differ depending on which school or college you are in. Please see the relevant section below, the SEAS Quick Guide, and the CC/Barnard/GS Quick Guide.

  • You can choose one of five concentration tracks that focus on different aspects of computer science:
      1. Foundations of Computer Science
      2. Systems
      3. Artificial Intelligence
      4. Applications
      5. Vision & Graphics
  • Each track consists of required track courses, breadth courses, & electives.
  • For information on C.S. tracks, please see the SEAS Quick Guide and the CC/Barnard/GS Quick Guide.
  • Each semester, you need to register for a dummy track course:
    • COMS E0001: Foundations
    • COMS E0002: Systems
    • COMS E0003: Artificial Intelligence
    • COMS E0004: Applications
    • COMS E0005: Vision & Graphics
  • Once you have registered, your DAR will reflect your choice and be tailored to the requirements of this track.
  • Yes, simply register for your new track the following semester.
  • Ensure that you meet with your C.S. faculty advisor to confirm that you are still on track for graduation under the new concentration track.
  • Entry into an advanced version of the five tracks is via faculty invitation only. If you are interested in pursuing the advanced version of a track, please duscuss it with your faculty advisor.
  • In exceptional circumstances it may be possible to get a core course waived with advisor approval. You will need to fill out the Core Waiver Form, get it signed by your C.S. advisor, and return it to C.S. Student Services.
  • Note that waiving a course is different from transferring credits. When you waive a course, you still need to take a replacement course to meet the credit requirement.
  • Yes, but all technical electives except those listed in each track must be approved by your C.S. faculty advisor.
  • All courses must be 3000-level or higher.
  • You will need to fill out the Elective Approval Form, get it signed by your C.S. advisor, and return it to C.S. Student Services.

Yes, with advisor approval.

  • Use the procedure described above.
  • COMS W4400 and ELEN E4901 are the only C.S. courses that cannot be counted as technical electives.

Please see the Computer Science section of the Directory of Classes for course listings each semester.

Undergraduates are not allowed to take any CVN courses even during the summer session.

You can drop into CS Student Services, 450 CSB and/or talk with your C.S. faculty advisor (please see the online advisor listing if you don’t know who your faculty advisor is).

  • Sign onto your SSOL account and take a look at the C.S. requirements sections on your DAR.
  • Drop into C.S. Student Services in 450 CSB to go over your course record and C.S. track requirements.
  • Talk with your C.S. faculty advisor.
  • Make sure that you have signed up for a C.S. dummy track course (see above). This will change the way your DAR looks depending on which track you choose.
  • If you are still having problems, please  C.S. Student Services describing exactly where the problem is.

A “D” is not a passing grade for the CS major requirements. The department, however, will grant you one-and-only exception to this rule. If you received a D for the first time, we do not require you to repeat the course.  If you get a D for the second time, we require you to retake the course.

  • Yes, the C.S. department has an email list that you can join. If you would like to be added to the list, please send an  with your name, UNI, and the school (e.g. Columbia College, SEAS, etc) that you are in.
  • By joining one of these email lists, you wil receive information and news regarding the C.S. department and program.

Yes, there are several events throughout the school year including mixers, karaoke nights, salsa dancing, baseball games, and other sports events.  Sign up to the above email list to receive news about these events.  If you want to be involved in organizing C.S. student events, please  C.S. Student Services.

If you wish to email all students, please send an  to C.S. Student Services.

Draft a message that you would like to send to C.S. students specifying the type of tutoring you are looking for.  that message to C.S. Student Services and it will be circulated among current undergraduate and graduate students who may be able and interested in helping you.

  • When you first transfer into Columbia, the Junior-Senior Advising Center will approve your transfer credits. The C.S. Undergraduate Program Director (currently Prof. Adam Cannon) will review which courses you can use towards your C.S. degree at Columbia. If you have questions regarding these courses, please contact your class dean and/or .
  • Discuss your plans with your class center advisor first.
  • You then need the approval of your C.S. faculty advisor. Also, you need the instructors of the CU courses you want to take elsewhere to approve your transfers to make sure they are equivalent to what is taught at Columbia.

Announcements are posted periodically to C.S. email lists (which you’ll automatically be subscribed to after you declare your major or minor/concentration), on the MICE job board, and via the Center for Career Education and their MonsterTrak job board.

  • Studying abroad is possible but requires careful planning. It is often difficult to fulfill major requirements at many universities abroad so particular care must be taken when choosing where to go.
  • While a semester abroad is possible, a year abroad will generally require either a large number of A.P. credits in technical areas or summer study.
  • Overall, most students who study abroad feel that the rewards outweigh the logistical difficulties involved. If you are interested in studying abroad, it is best to start planning with your class center advisor by the end of your first year.
  • Your C.S. faculty advisor can provide you with information about graduate study in computer science.
  • The Columbia University Student Chapter of the Association for Computing Machinery (ACM) organizes a panel/workshop on graduate school and the application processes, normally during the middle of Fall semester.
  • Students interested in graduate school are advised to take advantage of research opportunities during their junior year and to start the application process for graduate school at the end of the spring semester in their junior year.

To be considered for honors, a student must be within the top ten percent of their class regarding GPA, have a minimum GPA of 3.6 in the major, complete an undergraduate thesis (COMS W3902) and/or an independent study project (COMS W3998 or W4901) and be nominated to receive an award by their thesis/project advisor.

  • The department sponsors a student chapter of the Association for Computing Machinery, one of the professional organizations for computer scientists. The Columbia University chapter is the winner of the “2001 ACM Student Chapter Excellence Award,” for outstanding chapter activities. These activities included participation in the ACM Regional Programming Contest, the first year of the semi-annual Columbia ACM Student Chapter Distinguished Lecture Series, programming and gaming contests, movie nights, tutoring sessions, tutorials for the general community, luncheons, and study breaks.
  • The department also organizes social events open to undergraduate students. These events are an opportunity for students to mix with faculty, staff, graduate students, and peers in informal settings.  Email announcements are distributed regarding these events each semester.