CS F211 / MAC F242 Data Structures and Algorithms
Jan–May 2026

Table of Contents

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.

google-calendar.png

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.

zulip.png

Course Webpage

Click here to visit the course webpage or scan the QR code below.

webpage.png

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

  1. Foundations
    • What and Why
    • Growth of Functions. Asymptotic Notations
    • Recurrences
    • Probabilistic Analysis and Randomized Algorithms
  2. Sorting and Order Statistics
    • Heapsort
    • Quicksort
    • Lower Bounds to Comparision based Sorting. Linear time Sorting
    • Medians and Order Statistics
  3. Data Structures
    • Stacks, Queues, Deques, Linked Lists
    • Hash Tables
    • Binary Search Trees
    • Height-Balanced Trees
  4. 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

  1. [CLRS] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2022). Introduction to algorithms (4th ed.). MIT Press.
  2. [DPV] Dasgupta, S., Papadimitriou, C. H., & Vazirani, U. V. (2006). Algorithms. McGraw-Hill.
  3. [KT] Kleinberg, J., & Tardos, E. (2006). Algorithm design. Pearson/Addison-Wesley.
  4. [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)

Lecture 1 (09/01)

Lecture 2 (12/01)

  • outline, slides, CLRS 2.1, 2.2
  • Homework (non-evaluative):
    1. Draw a flowchart (directed graph) for Bubblesort
    2. Prove its correctness
    3. Find its worst-case time complexity as a function of the size of the array
    4. 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 3 (16/01)

  • outline, slides, CLRS 3.1, 3.2
  • HW (non-eval) [CLRS] Ex 3.2-1, …, 3.2-6

Lecture 4 (19/01)

  • outline, slides, CLRS 2.3
  • HW (non-eval) [CLRS] Ex 2.3-1, 2.3-3, 2.3-4, 2.3-5, 2.3-7, 2.3-8; Problems 2-1, 2-2, 2-4

Lecture 5 (21/01)

  • outline, slides, CLRS 4.3, 4.4
  • HW (non-eval) [CLRS] Ex 4.3-1, 4.4-1

Lecture 6 (23/01)

  • outline, slides, CLRS 4.3, 4.4, 4.5
  • HW (non-eval) [CLRS] Ex 4.3-2, 4.3-3, 4.4-3, 4.5-1, 4.5-3

Lecture 7 (28/01)

  • outline, slides, CLRS 7.1, 7.2
  • HW (non-eval) [CLRS] Ex 7.1-1, …, 7.1-4, 7.2-1, …, 7.2-5

Lecture 8 (30/01)

  • outline, slides, CLRS 7.1, 7.2, 7.4.1, 8.1
  • HW (non-eval) [CLRS] Ex 7.4-1, 7.4-2, 7.4-3, 8.1-1, 8.1-3, 8.1-4

Lecture 9 (02/02)

Lecture 10 (04/02)

  • notes, slides
  • HW (non-eval) [CLRS] 5.2-1, 5.2-3. 5.2-4, 7.2-5

Lecture 11 (11/02)

Lecture 12 (13/02)

  • notes, slides
  • HW (non-eval) [CLRS] 8.1-1, 8.2-1, 8.2-3, 8.2-4, 8.3-2, 8.3-4, 8.4-2, 8.4-4, Problem 8.3

Lecture 13 (14/02)

  • outline, slides, CLRS 10.1, 10.2
  • HW (non-eval)
    • [CLRS] 10-1.2, …, 10-1.8, 10-2.1, …, 10-2.5,
    • [TAoCP] 2.2.1 Ex 1, …, 6

Lecture 14 (16/02)

  • outline, slides, CLRS 12.1, 12.2, 12.3
  • HW (non-eval) [CLRS] 12.1-1, 12.1-3, 12.1-4, 12.1-5, 12.2-1, …, 12.2-4

Lecture 15 (18/02)

  • outline, slides, CLRS 12.1, 12.2, 12.3
  • HW (non-eval)
    • [CLRS] 12.2-5, 12.2-6, 12.2-9, 12.3-1, 12.3-2, 12.3-3, 12.3-5, 12.3-7, Problems 12-4,
    • [TAoCP] 2.3.1 Ex 2, …, 8

Lecture 16 (25/02)

  • outline, slides, CLRS 6.1, 6.2
  • HW (non-eval) 6.1-1, …, 6.1-8, 6.2-1, …, 6.2-7

Lecture 17 (27/02)

  • outline, slides, CLRS 6.3, 6.4, 6.5
  • HW (non-eval) 6.3-1, …, 6.3-4, 6.4-1, …, 6.4-5, 6.5-1, …, 6.5-8, Problems 6-1, 6-2

Lecture 18 (02/03)

  • outline, slides, CLRS 11.1, 11.2
  • HW (non-eval) 11.1-1, 11.1-2, 11.1-3, 11.2-1

Lecture 19 (06/03)

  • outline, slides, CLRS 11.3, 11.3.1, 11.4
  • HW (non-eval) 11.2-2, 11.2-3, 11.3-3, 11.3-4

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 23 (23/03)

  • notes, slides, CLRS 13.1
  • HW (non-eval) 13.1-1, …, 13.1-4, 13.1-7

Lecture 24 (25/03)

Lecture 25 (27/03)

  • notes, slides, CLRS 13.3
  • HW (non-eval) CLRS 13.3-2, 13.3-4, 13.3-5

Lecture 26 (30/03)

Lecture 27 (01/04)

  • outline, CLRS 21.1, 21.2, KT 4.5
  • HW (non-eval) CLRS 21.2-1, …, 21.2-8

Lecture 28 (06/04)

  • outline, CLRS 21.1, 21.2, KT 4.5
  • HW (non-eval) KT Ch4, Ex 8, …, 11, 22, 26, 27, 28, 30, 31

Lecture 29 (08/04)

  • outline, CLRS 19.1, 19.2, 19.3, KT 4.6
  • HW (non-eval) CLRS 19.1-1, 19.1-2, 19.1-3, 19.2-2, 19.2-3, 19.2-5, 19.2-6,19.3-1, …, 19.3-5

Lecture 30 (10/04)

  • outline, CLRS 22.2, 22.3, KT 4.4
  • HW (non-eval) CLRS 22.3-1, …, 22.3-12

Lecture 31 (13/04)

  • outline, CLRS 22.2, 22.3, 22.5 KT 4.4
  • HW (non-eval) CLRS 22.5-1, …, 22.5-8

Lecture 32 (15/04)

  • outline, CLRS 22.1, KT 6.8, 6.10
  • HW (non-eval) CLRS 22.1-1, …, 22.1-7, KT Ch 6, Ex 3, 13, 14, 23, 29

Lecture 33 (17/04)

  • outline, CLRS 23.1, KT 6.10
  • HW (non-eval) CLRS 23.1-1, …, 23.1-10

Lecture 34 (20/04)

  • notes, slides
  • Practice questions: CLRS 24.1-1, 24.1-2, 24.1-7
  • Reading exercise: "Modelling problems with antiparallel edges" (p673), "Networks with multiple sources and sinks" (p674)

Lecture 35 (22/04)

  • notes, slides
  • Practice questions:
    • CLRS 24.1-6, 24-2.8
    • Complete the execution of Ford-Fulkerson method on the example we started with during the class

Lecture 36 (24/04)

  • notes, slides
  • Practice questions: CLRS 24.2-2, 24.2-3, 24.2-4, 24.2-11

Lecture 37 (27/04)

  • outline, CLRS 20.4, 20.5, KT 3.5, 3.6
  • HW (non-eval) CLRS 20.4-1, …, 20.4-5

Lecture 38 (29/04)

Created: 2026-04-29 Wed 15:14

Emacs 30.2 (Org mode 9.7.11)