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.
Contact advising@cs. Juniors and Seniors should use this form to drop a course.
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.
You can reach out to advising@cs to have this resolved.
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.
Please contact the course instructor.
Yes.
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.
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 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) component to it. Example "tech light" courses (not a complete list): "computing in society", any course with the word "policy" in it, usually any course with the word "management" or "entrepreneurship" (or a word/phrase with similar meaning) 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.
Please see a detailed description of what is allowed here. MAKE SURE to get an explicit approval from your faculty advisor regardless of the information provided.
Short answer: No, not all topics classes can count for the track. The 4995 or 6998 topics class must be related to track for it to be even considered to be counted towards the track requirement. For example, "Mobile applications" or "Open source development" topics classes will not count towards Intelligent Systems track, or "Privacy Preserving Systems" or "Fundamentals of Speech Recognition" classes will not count towards Foundations track.
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.
For each course you want to "import" (that is, count towards your major requirements), you first need to find the equivalent course at Columbia. You should contact the instructor of the course to get the approval for the equivalency. Once they have approved that the course is equivalent, you should check with your faculty advisor (ie me) to verify which part of your CS major requirement your imported course can satisfy. Once both the Columbia course instructor and your CS faculty advisor have approved the outside course, make sure that your mice record gets updated accordingly (your CS faculty advisor can do it). 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 at Columbia, 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.
NOTE: Fill out this form for importing each course. (Signatures required on the form: "Department Representative" = Course Instructor, "Faculty Advisor" = me, "Advisor" = CSA Advisor, these must be signed in this order). Once everyone has signed, keep a copy for your records *AND* email it to advising@cs so that they can update your mice record.
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.
Fill out the degree checklist in as much detail as possible (include the exact semester you took/planning to take the class) and make sure you specify if you got the advisor approval for all classes that say advisor approval needed (eg 4995/6998/etc classes). SEAS BS in CS Degree Checklist
Fill out the degree checklist (see above) and let me know. Also reach out to (1) your CSA advisor, and (2) advising@cs so that we can start you off with the proper paperwork.
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.
You must follow the same steps listed above for a summer internship. Additionally, keep in mind that at most 3 units of fieldwork can be counted for your degree. That means CPT will be approved at max three times throughout your time an an undergrad. Also since you need to maintain full-time student status, there will be restrictions on the maximum number of hours you can work if you do an internship during the school year. You can check that with ISSO.