CSL 630: Data structures and Algorithms

Semester I 2014-2015

Instructor : Sandeep Sen


Lectures: M,Th 8 - 9:20 , Venue IIA 201

Office hours: Mon 9:30a - 10:30a

Teaching Assistants:

  • Anup Bhattacharya (CSE Research Scholar Room, Office hrs : Thurs 4:30- 6:30pm in GCL )

    The total will be computed as Minors 1 and 2 - 20% each, Major 40%, Quizes - and assignments - 20%.
    Two of the best quizes (out of three) will constitute 5% and the rest from the programming and take-home assignments.

    Attendence policy Students should abide by the attendence rules stipulated by the Institute. Students failing to meet attendence requirements will be reported for possible penal actions.

    Prerequisites: CSL201 (Data Structures) or equivalent Recommended : CSL105 (Discrete Structures)

    Contents. Review of basic data structures and their realization in object oriented environment. The following topics will be covered with emphasis on formal analysis and design, Dynamic Data structures; 2-3 trees, Red-black trees, binary heaps, binomial and Fibonacci heaps, Skip lists, universal hashing. Data structures for maintaing ranges, intervals and disjoint sets with applications. Basic algorithmic techniques like dynamic programming and divide- and-conquer, Sorting algorithms with analysis, integer sorting, selection, Graph algorithms like DFS with applications, MSTs and shortest paths.

    Lecture Notes

    For any feedback/corrections regarding notes please send email to me with subject CSL630

    Background Material in Counting and Probability


    Lectures

    Lecture 1 (Shortest Paths)   Lecture 2 (Shortest path cont)   Lecture 3   Lecture 5 (amortized analysis)   Lecture 6 (string sorting)  

    Lecture 7 (randomized selection)   Lecture 8 (Fibonacci nos computation)   Lecture 10 (knapsack,heuristics)   Lecture 11 (matroid/greedy)   Lecture 12 (matroid theorem)  

    Lecture 13 (Job scheduling) Lecture 14 (Union Find)   Lecture 15 (Dynamic Programming)   Lecture 16 (Dynamic Programming)   Lecture 17 (Dynamic Programming)

    Lecture 18 (Hashing)   Lecture 19 (Hashing)   Lecture 20 (Skip Lists)   Lecture 21 (Skip List analysis)   Lecture 22 (A database query problem)   Lecture 23 (Range Search tree)  

    Lecture 24 (rectangular range query)   Lecture 25 (k-d trees)   Lecture 26 (NP class)   Lecture 27 (NP completeness)   Lecture 28 (NPC problems and redn)   Lecture 29 (NPC proofs, approx)  

    Tutorial Problems

    Practice Problems 1

    Tutorial sheet 1

    Minor 1 solns

    Tutorial sheet 2

    Tutorial sheet 3

    Minor 2 solns

    Tutorial sheet 4

    Tutorial sheet 5

    Majors with solutions

    Reference books

    Algorithms by Dasgupta, Papadimitriou and Vazirani, Pub: Tata McGraw-Hill.

    The Design and Analysis of Computer Algorithms by Aho, Hopcroft and Ullman, Pub- Addison Wesley (Indian reprint available)

    Algorithm Design: by Kleinberg and Tardos,
    Low Priced Ed. by Pearson.

    Introduction to Algorithms by Cormen, Leiserson and Rivest, Stein, Pub: MIT Press (Indian reprint by Prentice Hall)


    Sandeep Sen
    Last modified: Mon July 23 2012