~ Waitlists / Enrollment / Registration ~
General Info: Everyone intending to enroll in COMS4771 will be placed on a waitlist. Students will be cleared to enroll from the waitlist based on their performance on a 'calibration' quiz aka HW0 that tests the prerequisite knowledge and student's preparedness for this course. The quiz is released in the first week of lectures and will be accessible to anyone who is on the class waitlist by the Wednesday of the first week of lectures.
If your preferred section is full, please put yourself on the waitlist for a different (non-CVN) section that has space still available. All sections are exactly the same.
-- Questions regarding getting onto the waitlist --
- The course shows up as restricted/blocked and I cannot even place myself on the waitlist. What should I do?
Please take a look at the policy to enroll in a CS class stated here: https://www.cs.columbia.edu/cs-course-registration-policy/ (you can email CS student affairs if you have a question).
Registrations for students from non-CS/CE/DSI department will open soon, or definitely by the first week of the semester. You should be able to self register then. If you have any issues, please contact CS student administration.
- How to I place myself on the waitlist?
- Please reach out to your deparment's student affairs if you need any help placing yourself on the waitlist. Do not email me asking to put you on the waitlist. First, instructors dont have have ability, Second, instructors usually dont know your specific department's policies for handling waitlists.
- I am a student in Columbia’s School of Professional Studies (SPS). What procedure should I follow to put myself on the waitlist for this course?
- If you are an SPS student you should contact your SPS Dean to check how to place yourself on the waitlist for this course. Only SPS students should contact SPS Dean. They cannot help non-SPS students regarding registration issues. If your SPS dean has no objections for you registering, you can reach out to CS student affairs on how to place yourself on the course waitlist.
- I am a CS/CE/DSI major and I still cannot place myself on the waitlist. What should I do?
Once the registration window opens for you, you should be able to self register. If you have any issues, please contact CS student administration.
If you are a CS/CE major, enroll in COMS4771. If you are a DSI major, enroll in COMS4721.
- Can you sign my Registration Adjustment Form (RAF) to get into the class?
- Under no circumstances RAF will be signed. Please contact your department’s student administrator and CS student advising on how to register for the class.
- Can I bypass placing myself on the waitlist and directly get enrolled?
- You must place yourself on the waitlist. You'd be cleared based on your performance on a calibration quiz (HW0) that will be released on the first week of lectures. There are no exceptions to this. student registration priority. You should reach out to your deparment's student affairs if you need any help placing yourself on the waitlist. You can reach out to CS student affairs if you have any questions about getting off the waitlist.
- I already have completed all the prerequisites for this course, can I bypass the calibration homework/quiz (HW0)?
- No, you must complete HW0. The calibration homework/quiz is designed for you to review the prerequisites, and understand the expectations for this course.
-- Questions regarding getting cleared from the waitlist --
-- Questions regarding denials --
- I just got denied registration, what is going on?
- Denial means that either (1) you didn't take the calibration quiz, or (2) you didnt get a good enough score on the calibration quiz. Either way, you are no longer approved to take the course.
- I didnt know there was a quiz on the first week of lectures/forgot to take the quiz, can you let me take the quiz now?
- No. There are 100s of students intending to take this course and took the quiz on time. Lack of awareness is not a valid excuse.
- I took the quiz but still got denied. Can I retake the quiz?
- No. Denial means that your prerequisite knowledge is weak/lacking to do well in this course. I suggest to either take a different ML course or brush up on the prerequisites and try again in a future semester.
- Can you please reconsider my denial decision?
- No, all decisions are final. I suggest to either take a different ML course or try again in a future semester.
-- Questions regarding dropping the course --
- I accidentally enrolled in the course/am no longer interested in taking this course, how do I drop?
You should be able to drop the course by yourself using SSOL/Vergil. If you have any issues you can reach out to your department's student affairs and they can help you drop the course.
Note that I cannot help you in dropping the course, so please dont contact me regarding this.
-- Future semester registration --
- I cannot take the course this semester, will it be offered next semester/year?
COMS 4771 is usually offered every fall and spring (and sometimes even over the summer) semester.
- I already passed the quiz but unfortunately I cannot take the course this semester, do I have to do the quiz again next semester to get into the class?
No, you dont have to take the quiz again if you have already cleared it once. Simply talk the to instructor at the start of the next semester and your score would be ported.
~ Calibration homework/quiz (HW0) ~
- Where can I access the calibration homework/quiz (HW0)?
- You can access HW0 on Courseworks which every student who has placed themselves on the waitlist by Wednesday of the first week of lectures will be able to access. Detailed instructions will be posted on course discussion board (Piazza/Edstem) closer to the beginning of the semester.
- I cannot access the calibration homework/quiz (HW0) on Courseworks, what is going on?
- You must be placed on the course waitlist by Wednesday of the first week of lectures. If you are late, we cannot guarantee that you can access Courseworks and/or the calibration quiz.
-- Questions on HW0 contents --
- What will be tested on HW0?
- The calibration quiz is designed to recall/test your prerequisite knowledge that is critical to do successfully in this course. See the "Prerequisites" section below to see what prerequisite knowledge is needed. Any of those topics (except programming) can be on the quiz.
- What will be the quiz format?
-
The quiz available on Courseworks. It is a fully online quiz that the students can take remotely. There will be Multiple Choice, True/False and Short Numerical Answers type questions.
More details will be posted at the start of the lectures on the course discussion board (Piazza/Edstem).
~ Auditing the course ~
- I want to audit the course, is there a special procedure I should follow?
-
If you are considering to "officially" audit, that is take the course for a "R" grade which will show on your transcript:
- The only requirement is for you to diligently attend lectures and write a short 1-2 page report at the end of the semester discussing how the material covered in class would be beneficial for your current/future academic/professional career
- Make sure to
- First check with your department's student affairs whether you are allowed and approved to take this class for R credit. (I cannot help you in this process)
-
Once your department advisor has approved you, you must email the course instructor (ie me) confirming that you want to take the course for R credit.
-
An acknowledgment email reply from the course instructor will confirm your R credit status for the course.
- IMPORTANT: Your R credit status is not confirmed until you get can explicit acknowledgment email from the course instructor.
- As an R credit student, you dont need to take any quizzes, homeworks, or exams
- You can reach out the TA if you need access to pre-recorded lectures on Courseworks.
If you want to "unofficially" audit (ie no record appears in your transcript)
- There are no restrictions, feel free to attend the lectures (in-person or online, whatever option is available during the semester)
- There are absolutely no requirements (you dont need to take any quizzes, homeworks, exams)
- You can reach out the TA if you need access to pre-recorded lectures on Courseworks.
~ Pass/Fail Grading Option ~
- Can I take the class as the Pass/Fail (P/D/F) grading option?
-
You can take the class as whatever grading option you prefer. You should be able to change the grading option on SSOL/Vergil by yourself. You can reach out to your department's student affairs in case you need help switching the grading option for the course. Note: it is your responsibility to check how changing the grading option affects your graduation requirements. You should reach out to your academic advisor regarding the implications of changing the grading option and how it affects your graduation requirements.
~ Prerequisites ~
- What are the prerequisites for this course?
-
There are several prerequisites for this class. In order to be successful in this course, you should have good working knowledge of applied probability, statistics, linear algebra, multivariate calculus and basic algorithmic design principles. Along with these math/CS prerequisites, you are expected to be able to program in a high-level scientific programming language of your choice (such as Matlab, Octave, Python, Julia or R).
Here are some of the very basics you should know:
- Applied Probability: Events, discrete and continuous random variables, densities, expectations, joint-, conditional- and marginal distributions, independence, concepts of standard deviation, variance, covariance, and correlation, law of large numbers, central limit theorem.
- Applied Statistics: Bayes Rule, Priors, Posteriors, Maximum Likelihood Principle (MLE), Basic distributions such as Bernoulli, Binomial, Multinomial, Poisson, Gaussian. Multivariate versions of these distributions, especially Multivariate Gaussian Distribution.
- Linear Algebra: Vector spaces, subspaces, matrix inversion, matrix multiplication, linear independence, rank, determinants, orthonormality, basis, solving systems of linear equations. Eigenvectors/values, Eigen- and Singular Value Decomposition. Identifying and working with popular types of matrices - e.g. symmetric matrices, positive (semi-) definite matrices, non-singular matrices, unitary matrices, rotation matrices, etc. Linear maps, fundamental subspaces (column space, row space, null space, left null space), operators, (orthogonal) projections.
- Multivariate Calculus: Limits and sequences of functions. Taylor expansions and approximations.
Take derivatives and integrals of common functions, gradient, Jacobian, Hessian, classification of stationary points, compute maxima and minima of common functions. Differentiation of vector valued functions.
- Mathematical maturity: Ability to communicate technical ideas clearly.
- Basic algorithm design and analysis: Time and space complexity analysis, asymptotic notation (eg, big-O, big-Ω, big-Θ), complexity analysis of iterative and recursive processes.
- Basic datastructures: Graphs, Trees, Lists, Tables. Basic representation, traversal and analysis techniques on such datastructures.
- Programming: Ability to program in a high-level language, and familiarity with basic algorithm design, data structures, coding principles and efficient data processing in your preferred high-level language.
- I have taken class XYZ, does it fulfill as a prerequisite for this course?
- Prerequisites are for general guidance of the topics that you are expected to know before you start this class. Since each student has a different background, no specific prerequisite class will be enforced. You have to judge for yourself if you are prepared to take this course. If you feel comfortable with the material covered in the lectures and homeworks, feel free to continue with the course.
- I don't have one (or more) of the prerequisites for this course, can I still be successful?
-
Students in the past have been successful with this course without having some background knowledge. However, these students put in a lot of work self-learning the associated prereq topics as needed.
- Will you review any of the prerequisites during the first few lectures?
-
We will not review/spend too much time on any of the prerequisite topics. It is strongly suggested to review all the prereq topics prior to the lectures to get the most out of them.
~ Syllabus / Topics Covered in Class / Lectures / Attendance ~
- Where is the course syllabus?
- Here is the link to the course syllabus: https://www.cs.columbia.edu/~verma/classes/ml/index.html.
- Is this course more applied or more theoretical?
- This course is very theoretical. You are expected to be comfortable with the math prereqs and you will not enjoy this course if you don't enjoy working on hard math problems. It covers more foundational topics that form the central pillars of all modern machine learning models.
- There is very little Neural Networks (NN), Deep Learning (DL) covered in this course. Why?
-
This course covers more foundational topics in ML that form the central pillars of all modern machine learning models. There are several COMS courses that cover NN and DL specifically. You are encouraged to explore/take those courses.
- I cannot attend every lecture, will the lectures be recorded that can be accessed?
-
Lectures will be recorded, and will be accessible by all sections via Courseworks throughout the semester for later viewing.
- Is in-person attendance mandatory?
-
In-person attendance for the lectures is not required; recorded videos of the lectures will be posted on Courseworks for later viewing. HOWEVER every enrolled student (except for CVN students) are required to take the exams in person on the scheduled days. Schedule for the exam days will be posted on the course discussion board (Edstem/Piazza) on the first day of lecture.
- I cannot attend the exams in person, can I take them remotely?
-
No, you are required to take the exams in person on the scheduled exam days. Please don't enroll in this class if you cannot attend the exams in person on the designated days. No exceptions will be given.
Only CVN students are approved to take the exams remotely under CVN approved exam proctors. Please reach out to support@cvn for details.
- I am a CVN student, but I want to attend some/all lectures in person. Is that possible?
-
Yes, you are allowed to attend lectures any number of lectures in person.
- I am a CVN student, but I want to take some/all exams in person. Is that possible?
-
Yes, you can take the exam(s) in person. HOWEVER, you must notify the instructor at least two weeks in advance to ensure that proper arrangements and appropriate coordination with CVN staff can be done in a timely manner.
~ Homeworks and Assignment Submission ~
Please take note that this course is evaluated purely on the basis of three exams, each weighted equally. Every student is required to take the exams on the designated dates. Homeworks will be given periodically but are completely optional to do and will not count towards your grade. Homeworks solutions will be released for student to review. All students are encouraged to do the homeworks for additional practice and get feedback that can help them for their exams.
Homeworks will contain a mix of programming and written assignments.
The programming segment can be done in any high-level programming language. You are expected to have good working knowledge of the programming language you choose, and will receive very little 'debugging' help from the staff.
-- Questions relating to homework logistics --
- Will homeworks be counted to calculate the final course grade?
- No. All homeworks are completely optional and will have a weighting of 0% towards the final course grade.
- Will homeworks solutions be released?
- Yes, all homeworks will be released for students to review and practice for the exams.
- How do I submit the homework?
- We will use Gradescope (https://gradescope.com/) for submitting and grading the class assignments. You will be able to access Gradescope from Courseworks
- What programming language(s) can I use for homeworks?
- You can use any programming language for doing the programming section of the assignment. It is strongly recommended that you use a high-level scientific programming language that gives you the ability to quickly code complex matrix level computations (such as computing a matrix inverse, find the eigenvalues, etc). Popular scientific languages include Matlab, Octave, Python, R and Julia. Students sometimes have used lower level languages like C, C++ or Java in the past.
-- Questions relating to homework contents --
- I need a clarification on a specific homework question, what do I do?
- You should use the course discussion board (Piazza/Edstem) to ask your question so that everyone in class can benefit from the answer. If your question is specific to your case or you only want the course staff to see your question, you can post it as a private question on the discussion board. Due to overwhelming amount of emails received by the course staff, individual emails asking clarification on homework problems will not be answered.
~ Degree/Graduation requirements ~
- I am in XYZ track/major/department/degree program. Does this class satisfy my graduation requirements?
- You should reach out to your department's student affairs and/or your academic advisor to check if this class satisfies your graduation requirements.
Please don't email me regarding this since I will not be able to comment or help in such matters.
- My track/major/department/degree program requires XYZ machine learning class to satisfy the graduation requirements. Is it possible to substitute/count this class instead?
- You should reach out to your department's student affairs and/or your academic advisor to check if this class can be used as a substitute.
Please don't email me regarding this since I will not be able to comment or help in such matters.
- My track/major/department/degree program requires me to take this class in a specific semester to count towards graduation. Can I take this class a different semester (earlier/later than the required semester) instead?
- You should reach out to your department's student affairs and/or your academic advisor to check if you can take this class in a different semester.
Please don't email me regarding this since I will not be able to help in such matters. In general, I have absolutely no objections. You can take the class earlier or later. It is your responsibility how this may affect your graduation.
~ Misc. ~
- I have a question that is not answered in this FAQ, what should I do?
- Please post your question on the course discussion board (Piazza/Edstem) to ask your question, and it will be answered promptly. Direct emails to the course staff/instructor will not be answered.
- My emails to course staff/instructors are not being answered. What is going on?
- See the previous question.
- How do I access the course discussion board (Edstem/Piazza)?
- You can access the course discussion board from Courseworks once you are officially enrolled in the course (usually by the start of the semester). See "Piazza" or "Ed Discussion" on the course navigation bar in Courseworks.
- I just signed up and placed myself on the waitlist on SSOL/Vergil. Why cant I access Courseworks/Course discussion board?
- You need to be officially enrolled in the course to access the course discussion board.
- Are there other introductory ML courses that I may be interested in?
-
Here is a list of other intro ML courses that may be of interest to students. The following is an incomplete list of courses that are available from different departments at Columbia. (I don't know which of these courses are offered this semester/next semester/summer/etc.)
-
COMS "ML for Data Science (DSI)" 4721
-
COMS "Elements of Data Science" 4995
-
COMS "Applied ML" 4995
-
COMS "Empirical Methods in Data Science" 4995
-
EE "Machine Learning" (EE 4903)
-
ELEN "Machine Learning for Signals, Information and Data" (ELEN 4720)
-
IEOR "Foundations of Data Science" 4500.
-
IEOR "Data Analytics" 4523.
-
IEOR "Data Analytics for OR" 4212
-
IEOR "Data Mining" 4540
-
STATS "Statistical Machine Learning" 4241
-
STATS "Applied Data Mining" 3106
-
STATS "Intro Data Science" 4206
-
STATS "Applied Data Science" 4243
-
STATS "Advanced Data Analysis" 4291
-
MECE "Data Science for Mechanical Engg" 4520
* IMPORTANT *
If you are taking COMS4771 to satisfy any part of your degree requirement (e.g. to count towards Intelligent Systems track, Area Foundation, etc.) then almost certainly it cannot be substituted with any of the above courses.
Since some of the courses listed above cover essentially the same material (albeit at a different depth) as COMS4771, "double counting" is usually not allowed. That is, you cannot count both COMS4771 and another course listed above (for some courses, not all) towards your degree requirements.
If you are unclear about your degree program requirements/restrictions please check with your academic advisor and don't email me (I will not be able to comment or help in such matters).
- The two courses COMS4771 and COMS4721 seem very similar, which course should I enroll in?
-
The contents of the two courses are very similar. 4771 gives enrollment preference to CS students while 4721 gives enrollment preference to DSI students.
- I have already taken COMS4771 (resp. COMS4721), should I enroll in COMS4721 (resp. COMS4771)?
- No, they are essentially the same course. Taking one is like taking the other. Your degree program should not allow you to take/count both the courses!
- I want/have to take COMS4721, but it is not offered this semester, can I enroll in COMS4771 instead and count it as a substitute?
- You need to get an approval from your department and/or academic advisor for this substitute. I cannot give this approval, nor can I comment on how it will affect your graduation requirements.
Please don't email me regarding this since I will not be able to help in such matters. In general, I have absolutely no objections you taking this class as a substitute for your requirements.