CS F211 / MAC F242 Data Structures and Algorithms
Jan–May 2026
Table of Contents
- When and Where
- People
- Zulip Chat
- Course Webpage
- Introduction
- A Tentative List of Topics
- Evaluation and Grading Policy
- References
- Handout
- Lecture Schedule
-
- Lecture 0 (07/01)
- Lecture 1 (09/01)
- Lecture 2 (12/01)
- Lecture 3 (16/01)
- Lecture 4 (19/01)
- Lecture 5 (21/01)
- Lecture 6 (23/01)
- Lecture 7 (28/01)
- Lecture 8 (30/01)
- Lecture 9 (02/02)
- Lecture 10 (04/02)
- Lecture 11 (11/02)
- Lecture 12 (13/02)
- Lecture 13 (14/02)
- Lecture 14 (16/02)
- Lecture 15 (18/02)
- Lecture 16 (25/02)
- Lecture 17 (27/02)
- Lecture 18 (02/03)
- Lecture 19 (06/03)
- Lecture 20 (16/03)
- Lecture 21 (18/03)
- Lecture 22 (20/03)
- Lecture 23 (23/03)
- Lecture 24 (25/03)
- Lecture 25 (27/03)
-
When and Where
Lectures
- Time: Mon Wed Fri 11:00 AM – 11:50 AM
- Place: LT1
Labs
- Time: Fri 1:00 PM – 3:00 PM
- Place: CC 219 + D153
Exams
- Midsem: 10 March Tuesday, 11:30 AM – 1:00 PM
- Endsem: 06 May Wednesday, 2:00 PM – 5:00 PM
Google Calendar
Click here to add the course calendar or scan the QR code below.
People
- Students
- CS Single degree 2nd year 2nd semester
- CS + X, Dual degree 3rd year 2nd semester
- Math and Computing, 2nd year 2nd semester
- Staff
- Aniket Basu Roy (Instructor-in-Charge)
- Girija Deepak Limaye (Instructor)
- Siddharth Gupta (Lab Instructor)
- Teaching assistants (TBA)
Zulip Chat
Click here to join the course Zulip chat or scan the QR code below.
Course Webpage
Click here to visit the course webpage or scan the QR code below.
Introduction
"THE PROCESS of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music."
— The Art of Computer Programming, Donald E. Knuth
A Tentative List of Topics
- Foundations
- What and Why
- Growth of Functions. Asymptotic Notations
- Recurrences
- Probabilistic Analysis and Randomized Algorithms
- Sorting and Order Statistics
- Heapsort
- Quicksort
- Lower Bounds to Comparision based Sorting. Linear time Sorting
- Medians and Order Statistics
- Data Structures
- Stacks, Queues, Deques, Linked Lists
- Hash Tables
- Binary Search Trees
- Height-Balanced Trees
- Graph Algorithms
- Representation of Graphs
- Graph Traversals
- Minimum Spanning Trees
- Single-Source Shortest Paths
- All-Pairs Shortest Paths
- Maximum Flow
Evaluation and Grading Policy
| Endsem | 40% |
| Midsem | 35% |
| Labs | 25% |
References
- [CLRS] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to algorithms (4th ed.). MIT Press.
- [DPV] Dasgupta, S., Papadimitriou, C. H., & Vazirani, U. V. (2006). Algorithms. McGraw-Hill.
- [KT] Kleinberg, J., & Tardos, E. (2006). Algorithm design. Pearson/Addison-Wesley.
- [TAoCP] Knuth, D. E. (1997). The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd ed.). Addison-Wesley.
Handout
Lecture Schedule
Lecture 0 (07/01)
- Administrivia, slides
Lecture 2 (12/01)
- outline, slides, CLRS 2.1, 2.2
- Homework (non-evaluative):
- Draw a flowchart (directed graph) for Bubblesort
- Prove its correctness
- Find its worst-case time complexity as a function of the size of the array
- For sizes from 5 to 100, generate arrays with random numbers in them.
- Store them in .csv file and plot the values
- See the codes here for insertion sort
Lecture 4 (19/01)
Lecture 6 (23/01)
Lecture 7 (28/01)
Lecture 8 (30/01)
Lecture 12 (13/02)
Lecture 13 (14/02)
Lecture 14 (16/02)
Lecture 15 (18/02)
Lecture 17 (27/02)
Lecture 19 (06/03)
Lecture 20 (16/03)
Lecture 21 (18/03)
- outline, CLRS 20.1
- HW (non-eval) 20.1-1, …, 20.1-8
Lecture 22 (20/03)
- outline, CLRS 20.2, 20.3
- HW (non-eval) 20.2-7, 20.2-8, 20.3-10, 20.3-11, 20.3-13
Lecture 24 (25/03)
- notes, slides, CLRS 13.2, 13.3
- HW (non-eval) CLRS 13.2-1, …, 13.2-3, 13.3-1
- Visualization link