COL351, Fall Semester 2026

Analysis and Design of Algorithms

Instructor: Rohit Vaish ()

Teaching Assistants:
Abhishek Tiwari (),
Sanchita Saha (),
Anshul Vijayvergiya (),
Nayan Rabadiya (),
Yash Bansal (),
Satwik (),
Omar Islam Laskar (),
Sharayu Shivajirao Deshmukh (),
Kalavala Navya ()


Course Information

What this course is about

This course will provide an introduction to the fascinating field of algorithms. Participants will learn various techniques for designing algorithms and formally reasoning about their correctness and resource requirements.

Who is this course aimed at

The course is designed for third-year undergraduate students. This offering of COL351 is for CS students; non-CS students should sign up for the Spring semester offering.

Prerequisites

This is a theoretical course that will require familiarity with Data Structures (COL106) and Discrete Mathematical Structures (COL202).

References
  • [DPV] Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani. Algorithms. First Edition.
  • [GM] Bernd Gärtner and Jiří Matoušek. Understanding and Using Linear Programming. First Edition
  • [KT] Jon Kleinberg and Éva Tardos. Algorithm Design. First Edition
  • [R] Tim Roughgarden. Algorithms Illuminated, Parts 1-4.
  • A Second Course in Algorithms at Stanford
Other resources


Admin

Lecture and tutorial timings

Lectures: TWF 10-11 AM. Venue: LH 410.

Tutorials: M/T/Th/F 1-2 PM. Venue: LH 313.5. (Tutorial Groups).

Sign up on the Microsoft Teams channel of the course for announcements.

Office hours

With TAs: Tuesday 6-7 PM. Venue: Bharti 408.

With Instructor: Via Email. Venue: Bharti 428.

Evaluation policy

Tutorial quizzes: 30% (best ten x 3%)
In-class quizzes: 45% (best three x 15%)
Assignments: 25% (best one x 25%)

  • There are no minor or major exams in this course; therefore, there will be no opportunity for a repeat minor or repeat major exam, except possibly for an E-grade remajor in January 2027. Additionally, there will be no make-up tutorial quiz, in-class quiz, or assignment.

  • All evaluations will take place under invigilation.

  • The use of any electronic devices during lectures, tutorials, or course evaluations is prohibited.

  • The submissions from tutorial quizzes will count towards the attendance.

  • Audits are not allowed.

Date and Lecture Topic Tutorials
Week 1
July 24 (Fri)
Lecture 1
Introduction to Algorithms

  • Slides
  • Additional reading: [R] Part 1 Chapter 1
    • No tutorial
    Week 2
    July 27 (Mon)
    July 28 (Tue)
    Lecture 2
    Divide and Conquer I: Integer Multiplication and Merge Sort

  • Slides
  • Additional reading: [R] Part 1, Chapter 1
  • Communicating algorithms
  • July 29 (Wed)
    Lecture 3
    Divide and Conquer II: Merge Sort (Contd.) and Asymptotic Analysis

  • Slides
  • Additional reading: [R] Part 1, Chapters 1 and 2
  • Understanding (log) scale: Powers of Ten
    Jul 30 (Thurs)
    July 31 (Fri)
    Lecture 4
    Divide and Conquer III: Asymptotic Analysis (Contd.)

  • Slides
  • Additional reading: [R] Part 1, Chapter 2
  • Week 3
    Aug 03 (Mon)
    Aug 04 (Tue)
    Lecture 5
    Divide and Conquer IV: Counting Inversions and Matrix Multiplication

  • Slides
  • Additional reading: [R] Part 1, Chapters 3 and 4
  • Timeline of matrix multiplication exponent
  • Quanta article on matrix multiplication
  • Aug 05 (Wed)
    Lecture 6
    Divide and Conquer V: Proof and Applications of Master Theorem

  • Slides
  • Additional reading: [R] Part 2, Chapter 4
  • The "grandmaster" theorem
  • Slides by Rohit Gurjar
  • Quanta article on integer multiplication
    Aug 06 (Thurs)
    Aug 07 (Fri)
    Lecture 7
    Quiz 1 (LH 121)

    Last date for course drop

    Week 4
    Aug 10 (Mon)
    Aug 11 (Tue)
    Lecture 8
    Graph Algorithms I: Basic Definitions and Representation

  • Slides
  • Additional reading: [R] Part 2, Chapter 7

  • Last date for adding courses in lieu of dropped courses
    Finalization of roll lists
    Aug 12 (Wed)
    Lecture 9
    Graph Algorithms II: Representation (Contd.) and Search

  • Slides
  • Additional reading: [R] Part 2, Chapter 8
  • Rubik's cube graph
    Aug 13 (Thurs)
    Aug 14 (Fri)
    Lecture 10
    Graph Algorithms III: BFS, DFS, and Applications

  • Slides
  • Additional reading: [R] Part 2, Chapter 8
  • Week 5
    Aug 17 (Mon)
    Aug 18 (Tue)
    Lecture 11
    Graph Algorithms IV: Topological Ordering and Strongly Connected Components

  • Slides
  • Additional reading: [R] Part 2, Chapter 8
  • Aug 19 (Wed)
    Lecture 12
    Graph Algorithms V: Strongly Connected Components (Contd.)

  • Slides
  • Additional reading: [R] Part 2, Chapter 8
  • Paper on bow tie structure of the web
  • Small-world experiment and Six degrees of separation
    Aug 20 (Thurs)

    Aug 21 (Fri)
    Lecture 13
    Graph Algorithms V: Dijkstra's Algorithm

  • Slides
  • Additional reading: [R] Part 2, Chapters 9 and 10 (for Heaps)
  • Dijkstra's Turing Award Lecture
  • How Google Maps finds shortest paths by Veritasium
  • Week 6
    Aug 24 (Mon)

    Aug 25 (Tue)
    Lecture 14
    Greedy Algorithms I: Job Scheduling

  • Slides
  • Additional reading: [R] Part 3, Chapter 13
  • Aug 26 (Wed)
    Milad-un-Nabi
    No Lecture
    Aug 27 (Thurs)
    Aug 28 (Fri)
    Lecture 15
    Greedy Algorithms II: Job Scheduling (Contd.)

  • Slides
  • Additional reading on Huffman Coding: [R] Part 3, Chapter 14, [KT] Chapter 4.8
  • How Computers Compress Text
  • Week 7
    Aug 31 (Mon)

    Sep 01 (Tue)
    Lecture 16
    Quiz 2 (LH 121)

    Sep 02 (Wed)
    Lecture 17
    Greedy Algorithms III: Minimum Spanning Trees

  • Slides
  • On the History of MST Problem
  • Additional reading: [R] Part 3, Chapter 15
  • Sep 03 (Thurs)
    Lecture 18
    Friday timetable
    Greedy Algorithms IV: Minimum Spanning Trees (Contd.)

  • Slides
  • Additional reading: [R] Part 3, Chapter 15
  • Sep 04 (Fri)
    Janmashtami
    No Lecture
      Group 3: Tutorial Sheet 6
      Rescheduled to Sep 02 (Wed), 5:30-6:30 PM, Bharti 501
    Week 8
    Sep 07 (Mon)

    Sep 08 (Tue)
    Lecture 19
    Greedy Algorithms V: Kruskal's Algorithm

  • Slides
  • Additional reading: [R] Part 3, Chapter 15
  • Sep 09 (Wed)
    Lecture 20
    Dynamic Programming I: Weighted Independent Set

  • Slides
  • Additional reading: [R] Part 3, Chapter 16
    Sep 10 (Thurs)

    Sep 11 (Fri)

    No Lecture
    BRICS Summit
      Group 4: Tutorial Sheet 7
      Rescheduled to Sep 09 (Wed), 2:00-3:00 PM, Bharti 501
    Week 9 (Sept 12-18)
    Sep 19 (Sat) Assignment 1 (9 AM-1 PM, LH 121)
      Week 10
      Sept 21 (Mon)
      Sept 22 (Tue)
      Lecture 21
      Dynamic Programming II: Knapsack

    • Slides (TBA)
    • Additional reading: [R] Part 3, Chapter 16
    • Sep 23 (Wed)
      Lecture 22
      Dynamic Programming III: Sequence Alignment

    • Slides (TBA)
    • Additional reading: [R] Part 3, Chapter 17
      Sep 24 (Thurs)

      Sep 25 (Fri) No lecture
      Mid-term evaluation of projects
      Week 11 (Mid-Semester Break)
      Sep 28-Oct 04 No Lectures
        No tutorials
      Week 12
      Oct 05 (Mon)
      Oct 06 (Tue)
      Lecture 23
      Dynamic Programming IV: Bellman-Ford Algorithm

    • Slides (TBA)
    • Additional reading: [R] Part 3, Chapter 18
    • Oct 07 (Wed)
      Lecture 24
      Dynamic Programming V: All Pairs Shortest Paths Problem

    • Slides (TBA)
    • Additional reading: [R] Part 3, Chapter 18
      Oct 08 (Thurs)

      Oct 09 (Fri)
      Lecture 25
      Quiz 3 (LH 121)

      Oct 10 (Sat)
      Lecture 26
      Wednesday timetable
      Network Flow I: Introduction to Network Flows

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
    • Lectures [1, 2, 3, 4, 5] by David Karger
      Week 13
      Oct 12 (Mon)
        Group 1: Tutorial Sheet 10 (TBA)
      Oct 13 (Tue)
      Lecture 27
      Network Flow II: Ford-Fulkerson Algorithm

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
    • Visualizing flow algorithms
      • Group 2: Tutorial Sheet 10 (TBA)
      Oct 14 (Wed)
      Lecture 28
      Network Flow III: Maximum Flows and Minimum Cuts

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
      Oct 15 (Thurs)
        Group 3: Tutorial Sheet 10 (TBA)
      Oct 16 (Fri)
      Lecture 29
      Network Flow IV: Edmonds-Karp Algorithm

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
      • Group 4: Tutorial Sheet 10 (TBA)
      Week 14
      Oct 19 (Mon)
        Group 1: Tutorial Sheet 11 (TBA)
      Oct 20 (Tues)
      Dussehra
      No Lecture
        Group 2: Tutorial Sheet 11 (TBA; to be held on a different day)
      Oct 21 (Wed)
      Lecture 30
      Network Flow V: Edmonds-Karp Algorithm (Contd.) and Applications

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
      Oct 22 (Thurs)

        Group 3: Tutorial Sheet 11 (TBA)
      Oct 23 (Fri)
      Lecture 31
      Network Flow VI: Edmonds-Karp Runtime Analysis (Contd.)

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
      • Group 4: Tutorial Sheet 11 (TBA)
      Week 15
      Oct 26 (Mon)
        Group 1: Tutorial Sheet 12 (TBA)
      Oct 27 (Tue)
      Lecture 32
      Network Flow VII: Maximum Flow Applications (Contd.)

    • Slides (TBA)
    • Additional reading: Notes by Roughgarden
      • Group 2: Tutorial Sheet 12 (TBA)
      Oct 28 (Wed)
      Lecture 33
      No Lecture

      Oct 29 (Thurs)
        Group 3: Tutorial Sheet 12 (TBA)
      Oct 30 (Fri)
      Lecture 34
      Quiz 4 (LH 121)

        Group 4: Tutorial Sheet 12 (TBA)
      Week 16
      Nov 02 (Mon)
        Group 1: Tutorial Sheet 13 (TBA)
      Nov 03 (Tue)
      Lecture 35
      NP-completeness I: Introduction

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapters 19 and 23
    • Fun with Hardness Proofs
      • Group 2: Tutorial Sheet 13 (TBA)
      Nov 04 (Wed)
      Lecture 36
      NP-completeness II: The Class NP

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapter 23
      Nov 05 (Thurs)
        Group 3: Tutorial Sheet 13 (TBA)
      Nov 06 (Fri)
      Lecture 37
      NP-completeness III: Reductions

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapter 22
    • What Makes Mario NP-hard?
      • Group 4: Tutorial Sheet 13 (TBA)
      Week 17
      Nov 09 (Mon)
      Govardhan Puja

        Group 1: Tutorial Sheet 14 (TBA; to be held on a different day)
      Nov 10 (Tue)
      Lecture 38
      NP-completeness IV: Reductions (Contd.)

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapters 19 and 22
      • Group 2: Tutorial Sheet 14 (TBA)
      Nov 11 (Wed)
      Lecture 39
      NP-completeness V: Reductions (Contd.) and P vs NP

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapters 22 and 23
      Nov 12 (Thurs)
        Group 3: Tutorial Sheet 14 (TBA)
      Nov 13 (Fri)
      Lecture 40
      Wrap-Up

    • Slides (TBA)
    • Additional reading: [R] Part 4, Chapters 22 and 23
      • Group 4: Tutorial Sheet 14 (TBA)
      Week 18
      Nov 16 (Mon)
        No tutorial
      Nov 17 (Tue)
      Lecture 41
      TBA

        No tutorial
      Nov 18 (Wed) Assignment 2 (9 AM-1 PM, LH 121)