Advanced Algorithms & Data Structures

DSC-13: Semester 5

Department of Computer Science - Bachelor in Computer Science (Honours)

Course Information

4
Total Credits
3
Lecture Hours
1
Practical Hours
45
Total Hours

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:

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

Essential Reading

  1. Goodrich, M.T, Tamassia, R., & Mount, D. Data Structures and Algorithms Analysis in C++, 2nd edition, Wiley, 2011.
  2. Cormen, T.H., Leiserson, C.E., Rivest, R. L., Stein C. Introduction to Algorithms, 4th edition, Prentice Hall of India, 2022.
  3. Kleinberg, J., Tardos, E. Algorithm Design, 1st edition, Pearson, 2013.
  4. Drozdek, A. Data Structures and Algorithms in C++, 4th edition, Cengage Learning, 2012.