IIT KGP

CS21203     Algorithms I

Autumn 2023

Course Overview

Asymptotic notations and their significance, introduction to RAM model of computation, complexity analysis of algorithms, worst case and average case.

Basic introduction to algorithmic paradigms like divide and conquer, recursion, greedy, etc.

Searching: binary search trees, balanced binary search trees, AVL trees and red-black trees, B-trees, skip lists, hashing.

Priority queues, heaps, Interval trees, tries.

Order statistics.

Sorting: comparison based sorting - quick sort, heap sort, merge sort: worst and average case analysis.

Decision tree model and (worst case) lower bound on sorting.

Sorting in linear time - radix sort, bucket sort, counting sort, etc.

String matching.

Graph Algorithms: BFS, DFS, connected components, topological sort, minimum spanning trees, shortest paths - single source and all pairs.

CS21203 [Theory]

  • Wednesday (10:00–10:55 am)
  • Thursday (09:00–09:55 am)
  • Friday (11:00 am–12:55 pm)

  • Venue
  • NC442 (Roll no.s ending with odd digits)
  • NC443 (Roll no.s ending with even digits)


  • CS21209 [Lab]

  • Thursday (02:00–05:00 pm)

  • Venue
  • Takshashila


  • Lectures
    Date Topic Course Materials
    2 Aug, 2023 Introduction 01_Introduction.pptx
    3 Aug, 2023 Analysis 02_Analysis.pptx
    10,11,16,17,18 Aug, 2023 Divide and Conquer, Recursion 03_Recursion_DAC.pptx
    25,30,31 Aug, 2023 Greedy Algorithms 04_Greedy.pptx
    6,8,13 Sep, 2023 Dynamic Programming 05_DP.pptx
    15,27,29 Sep, 2023 Trees 06_Trees.pptx
    4,6 Oct, 2023 Priority Queues and Heaps 07_Priority_Queues_Heaps.pptx
    6,11,12 Oct, 2023 Hashing 08_Hashing.pptx
    13,18,19 Oct 2023
    3,8,9 Nov, 2022
    Graphs-I
    Graphs-II
    09_Graphs_I.pptx
    09_Graphs_II.pptx
    Instructors

    Owais Iqbal

    owais.iqbal@kgpian.iitkgp.ac.in

    Aftab Hussain

    aftabh4004@kgpian.iitkgp.ac.in

    Rahul Barman

    barmanrahul@kgpian.iitkgp.ac.in

    Animesh Singh

    sanimesh005@kgpian.iitkgp.ac.in

    Aditya Hirwani

    adityahirwani@kgpian.iitkgp.ac.in

    Pranav Sonare

    pranavsonare.sonare@gmail.com

    Shubhraneel Pal

    shubhraneel@iitkgp.ac.in

    Suhas Jain

    suhasjain@iitkgp.ac.in

    Debanjan Saha

    debanjansaha@iitkgp.ac.in

    Monal Prasad

    monalprasad@iitkgp.ac.in

    Velpuri Venkata S Sriharsha

    velpuri.harsha@kgpian.iitkgp.ac.in

    References
  • Thomas H Cormen, Charles E Lieserson, Ronald L Rivest and Clifford Stein, Introduction to Algorithms.
  • Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005.
  • Sanjoy Dasgupta, Christos H. Papadimitriou and Umesh V. Vazirani, Algorithms, Tata McGraw-Hill, 2008.
  • Jeff Erickson, Algorithms, 2019.
  • Mark Allen Weiss, Data Structures and Algorithm Analysis in C.