1. Algorithm Analysis
2. Approach for Solving Problems
3. Abstract Data Type
4. Sorting
5. Searching
6. Linked List
7. Stack
8. Queue
9. Tree
10. Priority Queue / Heaps
11. Hash Table
12. Graphs
13. String Algorithms
14. Algorithm Design Techniques
15. Brute Force Algorithm
16. Greedy Algorithm
17. Divide and Conquer
18. Dynamic Programming
19. Backtracking
20. Complexity Theory
Appendix A