Advanced Data Structure and Algorithms: CSL7560
"The landscape of computer science is surveyed by the theorems of mathematics, while algorithms blaze the trails of possibility."
– Unknown
Course Description
Welcome to the Advanced Data Structure and Algorithms course!
This is a core course for first-year M.Tech CSE students, aimed at building a solid foundation in designing and analyising algorithms. It focuses on teaching students how to design algorithms for computational problems and formally reason about their correctness and efficiency.
Course Information
Prerequisites
A basic knowledge of Data Structures and Algorithms.
Books
- Introduction to Algorithms by CLRS
Evaluation Scheme
- 10% - Ten programming problems on CSES.
- 20% - Quizzes (MCQs, T/Fs) (best 2 out of 3 quizzes)
- 28% - Minor
- 42% - Major
- 0% - Practice problems whose variants may come in exam
- Bonus 1% - For every first catch of an error during the lectures
Office Hours
Mail me to fix an appointmentLectures
- Course Overview, Administrative Details, Introduction ( Slides )
- Binary Search Trees ( Slides )
- Binary Search Trees (contd.) ( Slides )
- BST: Insertion & Deletion, Intro to Red-Black Trees ( Slides )
- Red-Black Trees, Height Bound, Insertion ( Slides )
- Red-Black Trees: Insertion, Deletion ( Slides )
- Red-Black Trees: Deletion ( Slides )
- Red-Black Trees: Deletion (contd.), Augmenting Trees ( Slides )
- Augmenting Trees (contd.) ( Slides )
- Interval Trees ( Slides )
- Disjoint-Set Data Structure ( Slides )
- Disjoint-Set Data Structure (contd.) ( Slides )
- Introduction to Graphs ( Slides )
- Dijkstra’s Algorithm ( Slides )
- Dijkstra’s Algorithm (contd.) ( Slides )
- Dijkstra’s Algorithm (contd.), Flow Networks ( Slides )
- Flow Networks, Ford-Fulkerson Method ( Slides )
- Ford-Fulkerson Method (contd.), Max-Flow Min-Cut Theorem ( Slides )
- Max-Flow Min-Cut Theorem ( Slides )
- Maximum Bipartite Macthing ( Slides )
- Maximum Bipartite Macthing (contd.), Edmonds-Karp Algorithm ( Slides )
- Edmonds-Karp Algorithm (contd.) ( Slides )
- Introduction to Dynamic Programming ( Slides )
- Dynamic Programming: Rod Cutting (contd.), LCS ( Slides )
- Dynamic Programming: LCS (contd.) ( Slides )
- Dynamic Programming: Counting Boolean Parenthesizations, Bellman-Ford ( Slides )
- Dynamic Programming: Bellman-Ford (contd.), Activity-Selection Problem ( Slides )
- Dynamic Programming: Activity-Selection Problem (contd.) ( Slides )
- Greedy: Activity-Selection Problem (contd.), MST ( Slides )
- Greedy: MST, Kruskal’s Algorithm ( Slides )
- Greedy: Kruskal’s Algorithm (contd.), Prim’s Algorithm ( Slides )
- P, NP ( Slides )
- NP, P vs NP ( Slides )
- Reductions, NP-complete ( Slides )
- More NP-complete Problems ( Slides )
- Reductions: IndSet, VertexCover, DirHampath ( Slides )
- Reductions: DirHampath (contd.), Hampath, Hamcycle ( Slides )
- Hamcycle to TSP, Approximation Algorithms, OptVertexCover ( Slides )
- Approximability and Inapproximability of OptTSP ( Slides )
Programming Assignments
- Problem 1
- Problem 2
- Problem 3
- Problem 4
- Problem 5
- Problem 6
- Problem 7
- Problem 8
- Problem 9
- Problem 10