This page is designed to assist you with your advising questions, and if needed, book an appointment with Prof. Verma. Please note that this page is intended for SEAS students who are majoring in CS and have Prof. Nakul Verma as their assigned faculty advisor. In case you have a different advisor, please contact them for all your advising questions.
Check out the FAQs here first.
This is a difficult question and requires a bit of introspection. What makes you excited about CS? What would you like to get out of your CS education? What would like you do after you graduate? Once you have thought about these question, feel free to reach out to your faculty advisor (me) and we can discuss over email or in person.
You can reach out to the instructor of the course or visit previous semester's course website for fully understanding the enrollment requirements and procedures.
Generally speaking, enrollment priority is given based on your seniority and your track. It is possible that you may not get into your preferred course, in which case you should definitely have some backup courses planned. Generally, getting into courses is not as bad as it may seem, and most of the time you get in the course the second time you try.
For general questions you can reach out to advising@cs.
Yes, you can double count any 3k or above CS course that is being counted towards your general tech elective, track or other CS major requirement for your non-CS minor requirement.
We can only comment on your CS major. You should reach out to the department of the minor and/or your CSA (Center for Student Advising) advisor to check exactly if your transfer credit count towards it.
Take a look at the general guidelines here. Ideally you should aim to complete all 9 core courses and 1-2 track or general tech electives by the end of junior fall.
I cannot approve for registration of overlapping courses and this is strongly discouraged. You should contact your CSA advisor and seek approval from course instructors involved for further guidance.
Your CS faculty advisor (ie me) does not have any authority to comment/advice/approve courses not related to your CS major. You should reach out to your CSA (Center for Student Advising) advisor for any guidance.
You should contact the instructor for the course and a get written confirmation from them that you are allowed to waive it. If approved, make sure that they notify me and that your MICE record gets updated accordingly. Note that while you are allowed to skip taking a core course, you still need to have the corresponding core credits. That means you need to take a CS 3k or above course as a substitute to count towards the core credits for your major. You can only use CS courses to substitute.
This also applies to "Intro to Computing" ENGI 1006.
No. You must either take "Data Structures in Java" (COMS 3134) or "Honors Data Structures and Algorithms" (COMS 3137) for fulfilling the datastructures requirement.
If you want to take more involved course in statistics for having a stronger foundation, you may want to consider taking STAT 4204 (instead of STAT 4001), but this course will only satisfy the "stats" part of the "prob-stats" core requirement, you would also need to take a course in probability theory (such as STAT 4203 or MATH 4155) to satisfy the "prob" part of the "prob-stats" requirement. You can have one of these courses count towards your core and the other count as your general tech elective.
Only 4k or above courses can be substituted, (so STAT 1201 cannot be used for any part of the requirement). Any substitute course(s) needs to approved by the faculty advisor.
If you already know the material covered in linear algebra, you can substitute it with Modern Algebra (eg. MATH 4041/2).
Basically any 3k or above course from the list below can count towards general tech elective requirement:
Even if you are taking one of the approved courses from above, you still need to contact your faculty advisor (email me) for an explicit approval for each course, so that they update your MICE record accordingly.
A "tech light" course is basically a course offered in a technical department that does not have a heavy technical (CS/EE/Math/etc) comportment to it. Example "tech light" courses (not a complete list): "computing in society", any course with the word "policy" in it, "agile project management", "devops", "building a tech startup", "engineering for developing countries", some seminar-type classes with light technical component and is mostly paper reading, etc.).
Note that at most one "tech-light" course (ie 3 units) can count towards the five general tech elective course requirements (ie total of 15 units).
Occasionally, the technical content of "tech light" sounding courses is based on your particular choice of project and how much technical content you contribute. In case your project happens to have significant technical content, such a course can potentially count as a regular general tech elective. Such determination can only be made once you have completed the course and have your contributions (ie your part of the project work, etc.) reviewed by your faculty advisor.
You can email your faculty advisor (me) with the relevant details (department, course number, description, course webpage/syllabus, etc).
You can ask for an approval any time (either before, during, or after you have taken the course). We highly recommend and encourage to seek approval a semester before (just before registration), so that we can catch any potential issues or conflicts that may result in not having the course approved to count towards your CS major requirements.
For each course you want to "import" (that is, count towards your major requirements), you first need to find the equivalent course in CS department. You should contact the instructor of the course to get the approval for the equivalency. Once they approve it, make sure that your mice record gets updated accordingly (either the course instructor can do it, or you can contact your faculty advisor, i.e. me). Make sure to keep all your approved documentations as it may be needed later.
In case you want to import a course for which there is no equivalent course in CS department, you should first contact your faculty advisor (me) if it is appropriate to count. If it seems somewhat reasonable, you should contact the professor who has the closest association with the area for the course and have it be approved to count as a 4995 course. Typically, such a course will count towards your general tech elective. Again, once they approve it, make sure that your mice record gets updated accordingly and make sure to keep all your approved documentations as it may be needed later.
Also take note that there is a maximum limit on how many courses can be imported, see below.
Yes, at most 12 credits (that is, at most 4 courses) are allowed to be imported from another school for the major. This includes transfer credits (if you are a transfer student) as well as study abroad credits. (typically AP/IB import credits are not counted towards this restriction.)
If there is an equivalent CS course at Columbia, you will only be allowed to count however many units the Columbia CS course has (almost always 3 units) and typically your additional units will go wasted. For example, if you import 4 units for a 3 unit Columbia CS course, then you will not be able to count the additional 1 unit towards your CS major requirements.
If the imported CS course has no Columbia CS equivalent, then also almost always only 3 units will be counted towards the major (usually towards general tech electives) and the additional fourth unit will go wasted.
It goes without saying that graduate school is for furthering your education in a specific area of interest. This means you should think about what subfield(s) in Computer Science interests you. Apart from having a good academic standing, graduate programs look for some sort of academic project-work or research-work experience (this is especially important if you are thinking about doing a PhD).
Once you know what topics interest you, you should start taking advanced courses in the field to gain good background for doing research work. You should reach out to professor(s) whose research work interests you and attend the "research fair" that happens at the beginning of each semester (check out the emails sent by the department).
Occasionally some research projects would be available to students who have not yet taken relevant classes. Again, you can reach out to the professors and/or attend the research fair.
You should signup for either a 3998 or 4901 course in the appropriate department with the faculty of with whom you are doing research with. Please note that if the faculty is affiliated with the CS department you should take COMS 3998/4901 course. You should check with the faculty member you will work with (i) exactly which course number (3998 or 4901) you should take (typically the first semester you take 3998, and subsequent semesters 4901), (ii) if they are affiliated with the CS department, in which case please sign up for COMS 3998/4901.
Note that no more than six units of 3998/4901 courses can count towards your major (whether it is counted towards your track and/or general tech elective, and whether you take your research credits as a COMS course and/or as a non-COMS course)
Research courses can always count towards the general tech elective requirements. Occasionally (depending upon the research topic, research mentor, and your track) they can count towards your track requirements. In case you want to count the research course towards your track requirements (instead of general tech elective), you need explicit approval from your faculty advisor (me), who will usually ask for additional details about the exact type of research work you did, etc. to ensure that your work is appropriate for your specified track. If you are counting your research credits for track requirements, you also need to make sure that sign up COMS 3998/4901 (ie, the research credits are from the CS department).
No more than six units of 3998/4901 courses can count towards your major. The research credit total comes from all 3998/4901 courses you took: whether it be for your track and/or general tech electives, and whether they were taken as a COMS course and/or as a non-COMS course.
If you want the course to count for any part of the major (track or general tech elective), then you need to take it for a letter grade.
To get approved for CPT by ISSO:
After you are done with your internship, in order to receive credit for the course:
Note that the one unit of course credit received cannot be counted towards any part of the requirements for your major. It can however be counted towards the 128 point requirement for your degree.
The registrar should waive your tuition fees for the summer COMS 3999 enrollment. In case this does not happen, simply contact your advisor (me) and they can take care of it. That being said, there may be some additional fees you may be charged for the summer enrollment, those charges cannot be waived.