FAQ for Current Computer Science Undergraduates

Who is my Computer Science faculty advisor? When should I declare my major?
  • 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.

When should I sign up for my C.S. minor or concentration?

  • 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.

Which programming language is taught in the introductory courses?

What if I am a transfer, combined, or late-decision major student that has taken an intro series in a programming language other than Java?

  • 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.

 Can I take COMS W3157, 3137 or 3139 without first taking 1004, 1007, or 1009?

  • No, COMS W1004 etc., are prerequisites for the more advanced courses.
What are the C.S. major required core 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.
What are the C.S. major concentration tracks?
  • 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.
How do I sign up for a track?
  • 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.
Can I change tracks?
  • 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.
Can I do the advanced version of a 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.
Can I get a C.S. core course waived?
  • 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.
Can I take elective courses that aren’t on the approved list of track electives?
  • 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.
Can I take electives outside of the C.S. department?
  • Yes, with advisor approval.
    • Use the procedure described above.
Are there any courses that I cannot use as C.S. major technical electives?
  • COMS W4400 and ELEN E4901 are the only C.S. courses that cannot be counted as technical electives.
Which CS courses will be offered in which semester?
  • Please see the Computer Science section of the Directory of Classes for course listings each semester. 
Can I take a course through the Columbia Video Network (CVN)?
  • Undergraduates are not allowed to take any CVN courses even during the summer session.
I need to discuss my course program to determine which courses I need to take. Who can I speak to in the CS department?
  • 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).
I am a senior and am worried about whether I can graduate with my C.S. major on time or not. Is there a way for me to check?
  • 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.
My DAR is incorrectly listing the courses I am using towards my C.S. major requirements, what can I do?
  • 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.

I received a “D” for the required course. Should I retake it?

  •  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.

I am interested in the C.S. major, but have not yet declared. Can I still receive information about the major and the department?

  • 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.
Are there C.S. social events that undergraduates can attend?
  • 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.

I would like to send an email to all other CS majors. How can I do this?

  • If you wish to email all students, please send an to C.S. Student Services.
Can you suggest a Computer Science tutor?
  • 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.

I am a transfer student. How do I get the C.S. courses I took at my previous university to count towards my C.S. degree at Columbia?

  • 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 .

I want to take C.S. courses during the summer at a different institution. Can I transfer these credits to use towards my C.S. degree at Columbia?

  • 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.
How can I find out about Computer Science jobs, internships, and other relevant positions? Is studying abroad a good option for C.S. students?
  • 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.
What is the best way to prepare for graduate school?
  • 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.
How does one receive departmental honors in this department?
  • 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.
What student clubs, committees, and/or activities are offered within or through the department?
  • 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.
Last updated on 8/22/2008