At a Glance
- Credits: 4 (3+0+1)
- Exam Split: 50% (Assignments 8, Quizzes 7, Practicals 8, Attendance 5, Midterm 12, Viva 10) / 50%
- Note: Heavier final than the others, worth flagging loudly.
- Lab Heavy: No
- Units: 4
Roadmap
Learn how to measure and optimize code performance. By the end, you'll be able to compare algorithms and choose the most efficient one for any problem.
Panic Mode:
Units Breakdown
Unit 1: Foundations▼
Why it matters: Forms the mathematical basis for proving your code isn't slow.
📖 CLRS Chapters 2-4, 8, 9, 21
- ✦ Growth of functions, Asymptotic notation
- ✦ Linear-time sorting (counting/radix/bucket)
- ✦ Order statistics
- ✦ Disjoint sets
Unit 2: DP & Greedy▼
Why it matters: The core of modern technical interviews and optimization problems.
📖 CLRS Chapters 15, 16
- ✦ Matrix chain multiplication
- ✦ Strassen's algorithm
- ✦ Longest Common Subsequence (LCS)
- ✦ Optimal BST
- ✦ Greedy vs DP
- ✦ Knapsack, Huffman coding
Unit 3: Graphs▼
Why it matters: Powers maps, networks, and dependency resolution.
📖 CLRS Chapters 22-25
- ✦ Representation, BFS/DFS, Topological sort, SCC
- ✦ Kruskal & Prim (MST)
- ✦ Dijkstra, Bellman-Ford
- ✦ All-pairs shortest paths / Floyd-Warshall
Unit 4: String Matching▼
Why it matters: How search engines and text editors find things instantly.
📖 CLRS Chapter 32
- ✦ Naive string matching
- ✦ Rabin-Karp algorithm
- ✦ Finite automata
- ✦ Knuth-Morris-Pratt (KMP)