§1. Introduction §2. Analysis of algorithms §3. Graph algorithms §4. Greedy algorithms §5. Divide and conquer §6. Dynamic programming §7. NP-completeness Appendix