IIT KGP

CS21203     Algorithms I

Autumn 2022

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
  • NC243 (Roll no.s ending with odd digits)
  • NC341 (Roll no.s ending with even digits)


  • CS21209 [Lab]

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

  • Venue
  • Takshashila

  • Lectures
    Date Topic Course Materials
    3 Aug, 2022 Introduction 01_Introduction.pptx
    4,5 Aug, 2022 Analysis 02_Analysis.pptx
    10,11,12,17,24,25 Aug, 2022 Recursion Divide and Conquer 03_Recursion_DAC.pptx
    26,31 Aug, 1 Sep, 2022 Greedy Algorithms 04_Greedy.pptx
    2,7,8 Sep, 2022 Dynamic Programming 05_DP.pptx
    suitcase.py
    suitcase_DP.py
    9,14,15,16 Sep, 2022 Trees 06_Trees.pptx
    bst.c
    randperm.txt
    avl.c
    12,13 Oct, 2022 Priority Queues and Heaps 07_Priority_Queues_Heaps.pptx
    14,19 Oct, 2022 Hashing 08_Hashing.pptx
    21,26,27,28 Oct, 2022
    2,3,4 Nov, 2022
    Graphs
    Graphs-II
    09_Graphs.pptx
    09_Graphs_II.pptx
    Instructors

    Owais Iqbal

    owais.iqbal@kgpian.iitkgp.ac.in

    Md. Ashik Khan

    ashik.khan@kgpian.iitkgp.ac.in

    Vijay Kusumakar

    kusumakarvijay@kgpian.iitkgp.ac.in

    Ashish Gour

    gourashish162@iitkgp.ac.in

    Animesh Singh

    sanimesh005@kgpian.iitkgp.ac.in

    Prince Kumar

    mrprinceraj71097@kgpian.iitkgp.ac.in

    Cheepurupalli Udaya Bhaskar

    udayabhaskar2001@iitkgp.ac.in

    Sumit Kumar Yadav

    sumitkumar18cs@iitkgp.ac.in

    Kothapalli Dileep

    topper1116@iitkgp.ac.in

    Pankaj Kumar Agarwal

    pankajkagr@iitkgp.ac.in

    Rahul Barman

    barmanrahul@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.