Learning Objectives
This course is designed to build upon the fundamentals in data structures and algorithm design
and gain exposure to more data structures and algorithms for new problems.
Learning Outcomes
On successful completion of the course, students will be able to:
- Comprehend and use data structures for lists
- Use hash tables for dictionaries
- Comprehend and use data structures and algorithms for string matching
- Apply disk based data structures
- Implement and analyze advanced data structures and algorithms for graphs
- Describe the purpose of randomization in data structures and algorithms
Course Units
Unit 1: List and Iterator ADTs
4 Hours
- Vectors
- Lists
- Sequences
- Iterator Design Patterns
View Unit 1
Unit 2: Hash Tables & Dictionaries
6 Hours
- Hash Functions
- Collision Resolution Schemes
- Open Addressing
- Chaining
View Unit 2
Unit 3: String Algorithms
8 Hours
- KMP Algorithm
- Standard Tries
- Compressed Tries
- Suffix Tries
- Search Engines
View Unit 3
Unit 4: Advanced Trees
8 Hours
- 2-4 Trees
- B Trees
- Disk-based Operations
- Tree Balancing
View Unit 4
Unit 5: Graph Algorithms
8 Hours
- Bellman Ford Algorithm
- Union Find Data Structures
- Kruskal's Algorithm
- Minimum Spanning Trees
View Unit 5
Unit 6: Randomization
6 Hours
- Randomized Quicksort
- Randomized Select
- Skip Lists
- Probabilistic Analysis
View Unit 6
Unit 7: Network Flows
5 Hours
- Ford Fulkerson Algorithm
- Max Flow Problem
- Min Cut Theorem
- Applications
View Unit 7
🚀 Practical Exercises
30 Hours
- Interactive Algorithm Implementations
- Randomized Quick Sort & Select
- Kruskal's MST & Bellman Ford
- B-Tree & Binary Search Tree
- KMP & Suffix Tree Algorithms
- Step-by-step Visualizations
- Complete C++ STL Code Examples
Start Practicals
Prerequisites
- DSC 07: Data Structures with C++
- DSC 10: Design and Analysis of Algorithms
- Pass in Class XII
Essential Reading
- Goodrich, M.T, Tamassia, R., & Mount, D. Data Structures and Algorithms Analysis in C++, 2nd edition, Wiley, 2011.
- Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th edition, Prentice Hall of India, 2022.
- Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.
- Drozdek, A. Data Structures and Algorithms in C++, 4th edition, Cengage Learning, 2012.