Topics Covered: Introduction Recursion and Backtracking Linked Lists Stacks Queues Trees Priority Queue and Heaps Disjoint Sets ADT Graph Algorithms Sorting Searching Selection Algorithms [Medians] Symbol Tables Hashing String Algorithms Algorithms Design Techniques Greedy Algorithms Divide and Conquer Algorithms Dynamic Programming Complexity Classes Miscellaneous Concepts