(Picture source: https://www.pexels.com/photo/monarch-butterflies-near-a-pinki-flower-13132850/)
(Page last edited .)
Meetings will be held during Slot 12: 5.30 p.m. – 6.55 p.m. Mondays and Thursdays in LA 001. The instructor will be available for consultation immediately following class, up to 7.30 p.m., on both Mondays and Thursdays. He will also hold office hours (220, CC Building) 9.00 a.m. – 10.00 a.m. Tuesdays.
Today's computing systems are increasingly adaptive and autonomous: they are akin to intelligent, decision-making "agents". With its roots in artificial intelligence and machine learning, this course covers the foundational principles of designing such agents. Topics covered include: (1) agency, intelligence, and learning; (2) exploration and multi-armed bandits; (3) Markov Decision Problems and planning; (4) reinforcement learning; (5) multi-agent systems and multi-agent learning; and (6) case studies.
The course will adopt a "hands-on" approach, with programming assignments designed to highlight the relationship between theory and practice. Case studies will offer an end-to-end view of deployed agents. It is hoped that students can apply the learnings from this course to the benefit of their respective pursuits in various areas of computer science and related fields.
The Spring 2025 offering of the course will run in the flipped classroom format. After initial meetings to introduce the course, each "week" will begin with video lectures (of length 2–3 hours) being made available for the students to watch. Students are expected to view the lectures and go through reading material that is provided alongside. The first meeting of the week will be a "review and tutorial" session, in which the contents of the lectures will be reviewed and questions from the students addressed. The instructor will also take up problem-solving and/or programming exercises in this session to demonstrate and reinforce the concepts covered in the lectures. The second meeting of the week will be for a test based on the week's lectures.
The course is open to all Ph.D. students, all masters students, and undergraduate/dual-degree students in their fourth or higher year of study. The course is also open to undergraduate/dual-degree students in their third year of study, provided their CPI is 8.50 or higher. The instructor regrets having to deny registration to many interested undergraduate/dual-degree students in their third year; the restriction is necessary to keep the class strength within the capacity of the largest available classroom on campus. Note that the CPI threshold of 8.50 may be increased during the first week of classes in case the registration count exceeds the cap imposed by the institute―if so third-year undergraduate/dual-degree students who do not meet the updated threshold must drop the course. Note that no exceptions will be made.
The course does not formally have other courses as prerequisites. However, lectures and assignments will assume that the student is comfortable with probability and algorithms. Introduction to Probability by Grinstead and Snell is an excellent resource on basic probability. Any student who is not comfortable with the contents of chapters 1 through 7 (and is unable to solve the exercises) is advised against taking CS 747.
The course has an intensive programming component: based on ideas
discussed in class, the student must be able to independently design,
implement, and evaluate programs in python
. The student
must be prepared to spend a significant amount of time on the
programming component of the course.
Students who are unsure about their preparedness for taking the course are strongly advised to watch the lectures from week 1, 2, and 3 from the Autumn 2020 offering, to attempt the quizzes from those weeks, and also to go through Programming Assignment 1. If they are unable to get a reasonable grasp of the material or to negotiate the quizzes and programming assignment, they are advised against taking CS 747.
Grades will be based on (1) weekly tests, together contributing 24 marks; (2) three programming assignments, each worth 12 marks; (3) a mid-semester examination worth 15 marks; and (4) an end-semester examination worth 25 marks. All assessments will be based on individual work.
There will be 10 or more weekly tests, each for 3 marks. The 8 best scores from these tests will count towards the aggregate of 24.
The programming assignments must be turned in through Moodle. Late submissions will not be evaluated; they will receive no marks.
Students auditing the course must score 50 or more marks in the course to be awarded an "AU" grade.
Evaluation will be contingent on the student agreeing to comply with the course policies on academic honesty and submissions.
Students who encounter any medical issues during the course must write to the instructor as soon as possible with an official record of their sickness. If they are unable to appear in either of the exams, or to submit any of the three programming assignments, due to sickness, they may request to be re-evaluated.
Weekly tests that are missed due to medical issues will not be compensated, unless a student has fewer than 8 tests for which they were medically fit. Hence, for example, if 11 weekly tests were conducted, of which the student was medically fit for 9, then they will not have a make-up for the weekly tests. On the other hand, a student who was medically fit for only 5 tests can make up for 3 tests.
A single make-up test will be given to deal with all re-evaluation requests. Questions will be drawn from the entire syllabus, rather than the specific portion(s) a student has missed. This test will be held after the end-semester exams are completed for the semester, and on or before the date marked "Last date for showing evaluated answer scripts" in the academic calendar. Students who wish to take this test must plan/arrange to be physically present until the "Last date for showing evaluated answer scripts".
Moodle will be the primary course management system. Marks for the assessments will be maintained on the class Moodle page; discussion fora will also be hosted on Moodle. Students who do not have an account on Moodle for the course must send TA Sarvesh Gharat a request by e-mail, specifying the roll number/employee number for account creation.
Students are expected to adhere to the highest standards of integrity and academic honesty. Academic violations, as detailed below, will be dealt with strictly, in accordance with the institute's procedures and disciplinary actions for academic malpractice.
Students are expected to work alone on all the programming assignments and the examinations. While they are free to discuss the material presented in class with their peers, they must not discuss the contents of the programming assignments (neither the questions, nor the solutions) with classmates (or anybody other than the instructor and TAs). They must not share code, even if it only pertains to operations that are perceived not to be relevant to the core logic of the assessment (for example, file-handling and plotting). They also may not look at solutions to the given quiz/assignment or related ones on the Internet. Violations will be considered acts of dishonesty.
Students are allowed to use resources on the Internet for
programming (say to understand a particular command or a data
structure), and also to understand concepts (so a Wikipedia page or
someone's lecture notes or a textbook can certainly be
consulted). It is also okay to use libraries or code snippets for
portions unrelated to the core logic of the
assignment—typically for operations such as moving data,
network communication, etc. Querying LLMs for code snippets is
discouraged, but acceptable for portions unrelated to the core logic
of the assignment, as illustrated above. However, students must
cite every resource consulted or used, whatever be the
reason, in a file named references.txt
, which must be
included in the submission. If LLMs have been queried, each query
must be reported verbatim, along with a link to the LLM user
interface. Failure to list any resource or record LLM usage as
detailed above will be considered an academic violation.
Copying or consulting any external sources during the examination will be treated as cheating.
If in any doubt as to what is legitimate collaboration and what is not, students must ask the instructor.
Artificial Intelligence: Foundations of Computational Agents, David L. Poole and Alan K. Mackworth, 3rd edition, Cambridge University Press, 2023. On-line version.
Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2nd edition, MIT Press, 2018. On-line version.
Algorithms for Reinforcement Learning, Csaba Szepesvári, Morgan & Claypool, 2009. On-line version.
Selected research papers.
This page will serve as the primary source of information regarding the course, the schedule, and related announcements. The Moodle page for the course will primarily be used for recording grades.
E-mail to the instructor must contain "[CS747]" in the header.
Course videos are available through CDEEP; IIT Bombay students are encouraged to log in and watch them through this site.