CS771: Introduction to Machine Learning - 2024-25-II (winter semester)
Lecture Timings: TF 18:30-20:00 L20

Please note that this course is not being offered in the flipped mode this semester -- instead the regular mode is being adopted.

NOTE 1 (apply asap): Please apply for the course as early as you can. Student at the top of the priority lists (see below for details of priority lists) should not assume that their add request will be accepted no matter when they apply. We will wait for a reasonable amount of time and then process add-requests at regular intervals. Students who delay in applying are likely to see their add request rejected.

NOTE 2 (regarding audit): Please note that there are two distinct modes of "auditing" a course: registered and non-registered. The enrollment procedures for the two modes are very different as are the requirements for students enrolled in those modes. Please see below for details and decide accordingly.

  1. What are the prerequisites of this course?
    There are no formal prerequisites of this course. However, fluency with concepts in probability and statistics, linear algebra, calculus and real analysis, and programming ability are absolutely essential for this course even though the formal prerequisites do not reflect these. We will use the Python language for most programming tasks in this course so you should familiarize yourself with it.

  2. I am interested in doing this course? How can I register for this course?
    Preregistration period is Oct 29 – Nov 5, 2024 and add-drop period is Jan 6 – 12, 2025. All students (whether CSE or non-CSE, whether UG or PG), must register via Pingala either during course preregistration or else during add-drop.

  3. I have heard that there is a lot of demand for this course. What will be done if there are more add requests than there are seats?
    Indeed, this course is in heavy demand and we are seldom able to fulfill all requests. Regretfully, this is likely to continue. In order to ensure a fair and orderly processing, we will follow a priority order (given below) while processing add requests. These priority lists have been decided keeping in mind graduation requirements (for example, students for whom this course is compulsory/part of a basket have been given higher priority) and graduation deadlines (for example, students expected to graduate in 2024 have been given higher priority).
    Total number of seats: 400
    Seat breakup: 200 seats for UG students, 200 seats for PG students
    Definition of UG/PG: As per the DoAA/ARC, we will use the following categorization
    BT, BS and dual programs such as BT-MT, BS-MS, BS-MT, BT-MS, BT-MDes, BS-MDes, BT-MBA, BS-MBA are UG programs.
    MT, MS, MSc, MDes, MBA, PhD and dual programs such as MSc-PhD are PG programs.

    Priority list for PG students (200 seats)
    Priority list for UG students (200 seats)
    1. PG students (MT, MS, PhD) of the CSE department of Y23 or earlier batches
    2. PG students (MT, MS, PhD) of the CSE department of Y24 batch
    3. PG students (any program) of other all departments§
    1. UG students of Y21 or earlier batches who have been accepted to the CSE ML minor program†
    2. UG students of Y22 batch who have been accepted to the CSE ML minor program†
    3. UG students of Y21 or earlier batches who are either in the CSE BT or CSE BT-MT programs or else have been accepted to the CSE double major program‡
    4. UG students of Y22 batch who are either in the CSE BT or CSE BT-MT programs or else have been accepted to the CSE double major program‡
    5. UG students of Y21 or earlier batches not covered above
    6. UG students of Y22 batch not covered above
    7. UG students of Y23 batch who are either in the CSE BT or CSE BT-MT programs or else have been accepted to the CSE double major program‡
    8. UG students of Y23 batch not covered above

    † Only students who have actually been accepted into the ML minor program (as verified using published lists from the DoAA office) will be counted here. Students who are in the process of applying for the minor or trying to get a "retrospective" minor by first doing courses and then claiming a minor will not be counted here. Students accepted into other CSE minors e.g. Algorithms will also not be counted here.
    ‡ Only students who have been actually accepted into the CSE double major program (as verified using published lists from the DoAA office) will be counted here. Students still in the process of applying for inclusion into the double major program will not be counted here.


  4. How will ties be broken within a given priority level?
    If while processing requests of a certain priority level we find more requests at that priority level than there are seats left, then we will use the first-come-first-serve (FCFS) policy to break ties. This will be indicated by the time the request was made on Pingala.

  5. I put in my add request on Pingala but the status is still pending/waiting. I need to know the accept/reject decision so that I can add another course if my add request for CS771 is not accepted.
    We regret the inconvenience caused to you. As mentioned above, we usually wait for a reasonable amount of time at the beginning of preregistration (usually a couple of days) and then process add requests at regular intervals (often daily). If your add request for CS771 was made early enough, it should get processed (either accept or reject) soon and give you sufficient time to make add requests to other courses in case your CS771 add request could not be accepted.

  6. I did do preregistration and got accepted to the course but I dropped the course. However, now I think I do want to do the course. What should I do now?
    You should apply again at the time of add-drop. We will process add requests received during add-drop using the same priority lists as mentioned above. However, you will not get any additional preference during add-drop just because your add request was accepted earlier.

  7. I did do preregistration and got accepted to the course but my registration got cancelled. What should I do now?
    You should apply again at the time of add-drop. We will process add requests received during add-drop using the same priority lists as mentioned above. However, you will not get any additional preference during add-drop just because your add request was accepted earlier.

  8. Why was FCFS used as a tie breaker and not CPI or grades in some course?
    If a course has a prerequisite, then grade in that prerequisite course can very well serve as a tie breaker. However, CS771 has no prerequisites hence grade-based tie-breaking is not applicable. The course was also not designed to have any CPI prerequisites -- the course is open to students with all CPIs hence CPI-based tie-breaking is also inadmissible. We understand that other priority lists and other forms of tie-breaking are possible. We also understand that it is natural for someone to feel that some other priority/tie-breaking method would have been preferable, especially if that priority list/tie-breaking method could have put them towards the top of the list. However, we can only adopt one priority list and one tie-breaking method and we feel that the ones we have chosen are fair and objective. There is no getting around the more basic fact that the demand for this course greatly exceeds the teaching resources (faculty, TA etc) we have. No matter which priority list/tie-breaking method we choose, we are bound to turn down several add requests.

  9. What can I expect to learn from this course?
    Please take a look at the updated course proposal [link] to see a tentative list of topics that we will cover in the course. The course will seek to offer a broad exposure to topics in machine learning with some emphasis on areas that are currently prominent. Please note that although we will cover neural networks of various kinds, this is not a course focused on deep learning alone.

  10. Is this a theoretical course or an applied course?
    The course will involve both, understanding the statistical and algorithmic foundations of machine learning, as well as looking at applications of learning algorithms, indeed by implementing some of them. In order to get the maximum benefit from this course, you will be required to have a high degree of fluency and ease while working with statistical distributions, concepts from linear algebra, calculus and real analysis, and basic algorithmic tools. The course will also require the ability to code up machine learning algorithms. There will be programming assignments, as well as quizzes and exams. These aspects of the course will all touch upon theoretical, as well as applied aspects of machine learning.

  11. How do I brush up my basics (prob-stat, algebra, calculus etc)?
    For all the topics we mentioned above, there are plenty of resources available online using which you can come up to speed on these topics. During the course we will cover these topics briefly but we cannot spend any length of time on these basic topics. You will have to fill up any gaps in your understanding of these topics yourself. A few of our department courses have lecture notes/slides on some of these topics.
    http://www.cse.iitk.ac.in/users/piyush/courses/ml_autumn16/ML.html
    http://web.cse.iitk.ac.in/users/purushot/courses/olo/2016-17-w/scribes.php

  12. What programming language would be used in the course assignments?
    For most assignments, Python will be the language of choice. We will also expect fluent usage of libraries like numpy, scipy, matplotlib, as well as useful tools such as Jupyter.

  13. I really want to do this course but my add request has not been accepted. Can I meet you sometime in this regard?
    It is difficult to meet several students in person. We will follow the priority order mentioned on this website to process all requests. Alternatively, you are welcome to audit the course even if you are not registered. Please see an FAQ item on this below.

  14. I have some queries regarding this course, not related to add requests. Can I meet you sometime in this regard?
    It is difficult to meet several students in person. This FAQ page should clarify most commonly asked questions regarding this course.

  15. Can the discussion hour timings be changed?
    The course has been scheduled in an OE slot appropriate for OE courses that avoid all DC/DE/IC slots. We regret that we are unable to entertain any requests for changing the discussion hour slots.

Auditing the Course

There are two distinct modes of auditing a course -- registered and non-registered. Note that the only difference between registered audit students and registered credit students is that the former are assigned an S/X grade whereas the latter are assigned a A/B/C/D/E/F grade. The table below clarifies the distinctions and similarities between registered audit and non-registered audit. Please use this information to choose a mode accordingly.


Registered Audit Non-registered Audit
Who can register? Only registered students of IIT Kanpur Any registered student of IIT Kanpur or employee of IIT Kanpur or resident of IIT Kanpur campus. In special cases, we may also extend this to members of the general public who are not related to IIT Kanpur by enrollment, employment or residence.
What about attendance in lectures/discussion hours? Registered audit students are welcome to attend all lectures/discussion hours. However, no attendance is taken in class. Non-registered audit students are welcome to attend all lectures/discussion hours if they are present on IIT Kanpur campus. However, no attendance is taken in class.
What all course material is accessible? All course material that is accessible to non-auditing students of the course is also accessible to auditing students of the course including lecture videos, slides, notes, code. All course material that is accessible to non-auditing students of the course is also accessible to auditing students of the course including lecture videos, slides, notes, code.
What about assignments and (mini) projects? Registered audit students must submit all assignments and (mini) projects just like registered credit students of the course with the exact same deadlines applicable. Their submissions will be graded. Registered audit students can form assignment/project groups amongst themselves as well as with registered credit students of the course. Non-registered students of the course will have access to the assignment/project packages that contain problem statements, data and evaluation code which they can use to attempt the project. However, they cannot submit their solutions and they will not be graded. As a result, non-registered audit students are not allowed to be a part of assignment/project groups.
What about forming project groups? Registered audit students can freely form project groups with other registered audit students as well as other registered credit students. We do not allow non-registered audit students to form projects with either registered audit or registered credit students. This is to avoid having mixed groups where some members will get graded and others would not.
What about quizzes and exams? Registered audit students must appear for all quizzes and exams just like registered credit students of the course. They must appear for the exams/quizzes on the same date/time as registered credit students. Their submissions will be graded. Non-registered students of the course cannot appear for quizzes or exams. However, once the quiz/exam is over, the question paper is released using which they can take the exam themselves. The model solutions are also released using which they can evaluate their own performance in the quiz/exam.
What about grades? Registered audit students are assigned an S/X grade at the end of the course which will appear on their transcript. Non-registered audit students are not assigned any grade and no record of them having audited the course appears on their transcript.
Can I register for this same course in a future semester? If a registered audit student fails the course by receiving an X grade, they can re-register in a future semester to replace that grade. However, to the best of our knowledge, if a registered audit student receives a passing (i.e. S) grade in the course, this prevents them from re-registering for this course in a future semester. Please contact the DoAA office for clarifications in this regard. Non-registered audit students can freely register for this course in future offerings or even audit the course once more in a future offering (say by a different instructor).
Limits on enrollment numbers Registered audit students are subject to the same priority lists and enrollment caps as registered credit students. The course treats all add-requests equally irrespective of whether they are audit or non-audit. There is no separate "quota" or "cap" for audit students. There is no limit on how many students can audit in the non-registered mode and there are no priority lists or caps. This is primarily due to the fact that non-registered audit students do not partake of the grading and invigilation services of the course.
How to enroll? Please make an add request on Pingala clearly specifying that the request is under audit mode. Please also clearly mention in the comments that you wish to get an S/X grade in the course. Please send an email to the instructor and do not make an add request on Pingala.