Contents
- 1 GENERAL ADVISING & MAJOR DECLARATION
- 1.1 I am interested in becoming a CS major but I am not yet declared. Can I still receive information about the major and the department, including job opportunities and events?
- 1.2 When can I declare CS as my major? Are there any minimum requirements that I need to meet before declaring the major?
- 1.3 How do I declare CS as my major?
- 1.4 I’m a Barnard student and I need a signature on my major declaration form. Who can sign for me?
- 1.5 Who is my CS advisor?
- 2 TRACK QUESTIONS
- 3 COURSE WAIVERS, IMPORTS, SUBSTITUTIONS AND OTHER EXCEPTIONS
- 3.1 Can I waive out of a required CS course?
- 3.2 I have taken some CS courses at another school or plan to do so during my summer break. Can I transfer those credits in to Columbia and count them toward my CS major?
- 3.3 Can I take electives that aren’t on the approved list of track electives? How about classes outside of the CS department?
- 3.4 Can I substitute any courses in the minor?
- 4 COURSE PLANNING
- 4.1 Can I take Linear Algebra instead of Computational Linear Algebra?
- 4.2 Can I take “Essential Datastructures” (COMS 3136) for the Datastructures requirement?
- 4.3 Which CS courses will be offered each semester?
- 4.4 How can I create a program plan for my major requirements?
- 4.5 Which courses can I count as General Technical Electives? (For SEAS students only).
- 4.6 Can I take a course through CVN or one of the CS department’s flipped/hybrid course offerings?
- 4.7 My DAR is incorrectly listing the courses I am using toward my major requirements and/or saying I’m missing a requirement that I have definitely satisfied. What can I do?
- 4.8 I got a ‘D’ in a required course. Do I need to retake it?
- 4.9 Can I take a course P/F and count it toward my major requirements?
- 4.10 Is studying abroad a good option for CS majors?
- 4.11 Should I take COMS W3157 and CSEE W3827 at the same time?
- 4.12 Can I double count course X for CS and my other major/minor/concentration?
- 4.13 What’s the difference between Data Structures and Honors Data Structures?
- 4.14 How do I get involved in research?
- 4.15 What do I do if I want to do a research project for credit or write a senior thesis?
- 4.16 Do I have to / can I take 1006? Can I skip 1006 if I know Python already?
- 4.17 Can I take Data Structures and Discrete Math at the same time?
- 4.18 I already know Java, can I go straight into 3134?
- 4.19 Can I take COMS W3134 and COMS W3157 at the same time?
- 4.20 How can I find a tutor for a CS course?
- 4.21 I already know discrete math, can I skip it and take a higher level class?
- 5 CAREER DEVELOPMENT
GENERAL ADVISING & MAJOR DECLARATION
I am interested in becoming a CS major but I am not yet declared. Can I still receive information about the major and the department, including job opportunities and events?
Yes. Please contact career@cs.columbia.edu to be added to the department’s jobs board on Piazza. A schedule of department events can be viewed here: http://www.cs.columbia.edu/calendar/. You will be added to the CS mailing list once you officially declare CS as your major.
When can I declare CS as my major? Are there any minimum requirements that I need to meet before declaring the major?
The major declaration period occurs during your sophomore year: in the fall semester for SEAS students and the spring semester for Columbia College, GS, and Barnard students. There are no minimum requirements that you need to meet before declaring the major or minor, though we do recommend that you start taking the introductory CS courses (ENGI E1006, COMS W1004) during your freshman year.
How do I declare CS as my major?
Each school has a different process for this. SEAS and CC students should discuss with their CSA advising dean. GS and Barnard students should speak with their respective school advisors.
I’m a Barnard student and I need a signature on my major declaration form. Who can sign for me?
Please see Barnard Department Admin, Jared Stickley, in Milstein 504, to declare a CS major.
Who is my CS advisor?
All CS majors and concentrators are assigned a faculty advisor. You can find yours by clicking here. The administrative advisors for the CS undergraduate program can be reached at advising@cs.columbia.edu.
TRACK QUESTIONS
Am I required to declare a track?
Yes! All CS majors are required to declare a track and specialize in one of five major areas of Computer Science: Foundations, Software Systems, Digital Systems, Intelligent Systems, Applications and Vision, Interaction, Graphics and Robotics.
How do I declare my track?
Please declare your track in MICE. You can click on the blue pencil icon next to Program in your MICE profile and select a track from the dropdown menu. Please do this as soon as possible so your advisors know which program requirements you are following.
Can I change tracks?
Yes. However, if you are changing tracks in your junior or senior year, you should meet with your advisor to do a degree progress check to ensure that you can still complete your program in time for graduation.
What is the advanced track? Can I sign up for this?
Entry into an advanced track is by faculty invitation only, and it is only extended to students who have already completed the core courses and the required courses for one of the five tracks. This is extremely rare.
What is the Combo Track?
This track is for students who wish to combine computer science with another discipline in the arts, humanities, social or natural sciences. A coherent selection of six upper-level courses is required: three from computer science and three from another discipline.
The courses should be planned with and approved by the student’s CS faculty advisor by September 30th of the junior year. The six courses are typically 4000-level elective courses that would count towards the individual majors. Moreover, the six courses should have a common theme. The combination track is not available to those students who pursue double majors. Please complete the Combo Track Proposal form with your CS Faculty Advisor.
COURSE WAIVERS, IMPORTS, SUBSTITUTIONS AND OTHER EXCEPTIONS
Can I waive out of a required CS course?
If you already know the material in one of the required courses, either through taking another course elsewhere or through work/project experience, it may be possible to waive out of that course. Please get in touch with your faculty advisor to discuss this. Your advisor will determine whether your prior knowledge is sufficient to satisfy that course requirement. If your waiver request is approved, please forward the approval email to advising@cs.columbia.edu so we can maintain a record of the waiver. Please note that there is no actual point value to a course waiver. When you waive out of a course, you will still need to take a replacement course to meet the minimum credit requirement for the major.
I have taken some CS courses at another school or plan to do so during my summer break. Can I transfer those credits in to Columbia and count them toward my CS major?
First, contact your school’s advising dean in order to get the actual credit/point value of the course transferred to Columbia. In order to count a non-Columbia course toward your CS major / minor / concentration, we require a minimum grade of B. To then count the course & points toward your CS major requirements, you will need to reach out to the instructor of the equivalent course at Columbia to convince them that the course you took elsewhere is in fact equivalent. If they approve, forward that approval to advising@cs.columbia.edu so we have a record. Barnard students should forward to their advisor to have their degree audit updated.
Can I take electives that aren’t on the approved list of track electives? How about classes outside of the CS department?
Yes, but any course outside of the pre-approved list will need to be reviewed and approved by your CS faculty advisor first. Please be sure to send all substitution approvals to advising@cs.columbia.edu so we can maintain a record. Note: all track courses must be 3000-level or higher.
Can I substitute any courses in the minor?
No substitutions or changes of any kind from the approved minors are permitted (see lists below). No appeal for changes will be granted. Please note that the same courses may not be used to satisfy the requirements of more than one minor. No courses taken for pass/fail may be counted for a minor. Minimum GPA for the minor is 2.0. Departments outside the Engineering School have no responsibility for nonengineering minors offered by Engineering.
COURSE PLANNING
Can I take Linear Algebra instead of Computational Linear Algebra?
Students may choose to take Linear Algebra (MATH 2010, APMA 3101, or APMA 2101) or Computational Linear Algebra (COMS 3251) to satisfy this requirement.
Can I take “Essential Datastructures” (COMS 3136) for the Datastructures requirement?
No. You must either take “Data Structures in Java” (COMS 3134) or “Honors Data Structures and Algorithms” (COMS 3137) for fulfilling the datastructures requirement.
Which CS courses will be offered each semester?
We can’t guarantee more than 3 months in advance that a certain course will be offered during a specific semester, since course scheduling often depends on instructor availability. However, we try to keep our schedules as consistent as possible. You can look back at course listings from previous years to get a sense of what we offer each fall and spring.
How can I create a program plan for my major requirements?
We have degree progress checklists on our general undergraduate info page. We recommend that you use these checklists to plan out your program and figure out which courses you still need to take to complete your major requirements. Please feel free to send your checklist to advising@cs.columbia.edu so a Student Services advisor can review and confirm your plan. Please keep in mind that CS courses are in very high demand, so you may not be able to get in to your top choices each semester. Your program plan should be flexible and include alternate options.
Which courses can I count as General Technical Electives? (For SEAS students only).
Generally, all SEAS courses will count as GTEs, with the exception of Lean Launchpad. Most STEM courses will count. Social science courses (e.g. psychology) and economics courses will not count as GTEs. The only exceptions are Econometrics and Game Theory in the Economics department and Formal Logic in the Philosophy department. All GTEs must be 3000-level or higher. You must get all GTEs pre-approved by your CS faculty advisor.
Can I take a course through CVN or one of the CS department’s flipped/hybrid course offerings?
CVN courses are not available to undergraduate students. SEAS undergraduates are permitted to count up to 1 flipped/hybrid course (any course with a section H01) per semester toward their degree. Students in CC, GS, or Barnard cannot count flipped/hybrid courses toward their degrees.
My DAR is incorrectly listing the courses I am using toward my major requirements and/or saying I’m missing a requirement that I have definitely satisfied. What can I do?
Ignore the DAR. It is often incorrect for CS majors. Please confirm your program requirements with your faculty advisor or CS Student Services. We use our own departmental degree progress checklist, not the DAR, to clear you for graduation.
I got a ‘D’ in a required course. Do I need to retake it?
If you are in SEAS, GS, or CC, we will grant a one-time-only exception to count one D toward your major requirements. If this is your second D, you will need to retake the course. Barnard does not allow for a D to be counted for any major or minor, including Computer Science.
Can I take a course P/F and count it toward my major requirements?
No.
Is studying abroad a good option for CS majors?
Studying abroad is possible for CS majors 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. You will need to confirm with your CS faculty advisor that the courses you take while abroad will count towards your CS major at Columbia. 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 school advising dean by the end of your first year.
Should I take COMS W3157 and CSEE W3827 at the same time?
This seems to be a matter of taste. Some students suggest the courses complement one another and are interesting to take together. Others prefer to take AP first to be better prepared for the assembly language programming in the second half of Fundamentals.
Can I double count course X for CS and my other major/minor/concentration?
If you are a SEAS student, you can double-count a major course toward your minor. If you are a Barnard student, double-counting is not allowed because Barnard does not allow double-counting. If you are a CC or GS student, you may double-count the following CS requirements with another major, minor, or concentration:
- Any Calculus courses (including Honors Math A and B)
- COMS W1004 Introduction to CS and Programming in Java
- Linear Algebra (COMS 3251, MATH 2010)
What’s the difference between Data Structures and Honors Data Structures?
Honors Data Structures is worth 4 points and has a mandatory recitation session in addition to lectures. The honors course typically covers a few additional topics, such as data structures and algorithms in functional programming languages (we have used Scala in the past).
How do I get involved in research?
The CS department holds a Research Project Fair during the first week of each fall and spring semester. You can attend this fair to explore available research opportunities in the department each semester. You can also reach out directly to faculty members with whom you are interested in working to inquire about research opportunities that they may have available in their lab.
What do I do if I want to do a research project for credit or write a senior thesis?
First, you need to find a CS faculty member to serve as your research advisor. Then reach out to advising@cs.columbia.edu and we can give you the call numbers for the project or thesis courses. You can count a maximum of 6 points of research/project credit toward your major.
Do I have to / can I take 1006? Can I skip 1006 if I know Python already?
In general, only SEAS students must take 1006. The course is open to non-SEAS students. We occasionally allow SEAS students who can demonstrate that they are familiar with the course content to waive the course. However, they need to make up the 3 credit points by taking an extra 3000 or 4000 level CS course.
Can I take Data Structures and Discrete Math at the same time?
Yes.
I already know Java, can I go straight into 3134?
Maybe! But discuss this with Prof. Paul Blaer first.
Can I take COMS W3134 and COMS W3157 at the same time?
It is recommended that you take Data Structures before taking Advanced Programming.
How can I find a tutor for a CS course?
Email advising@cs.columbia.edu and we’ll provide you a list of available tutors.
I already know discrete math, can I skip it and take a higher level class?
You may test out. Tests are offered at the beginning of every semester. Please discuss this with prof. Ansaf Salleb-Aouissi.
CAREER DEVELOPMENT
How do I find out about CS jobs and internships?
Check your e-mail! We send daily job listings to the CS student listserv from our Careers@CS e-mail alias. You can also find lots of job listings on LionShare. The CS department and the Center for Career Education also host many employer recruiting events throughout the academic year.