Syllabus
Week | Topics | Readings |
1 | Introduction to Algorithms-sequential and parallel Introduction to some interesting problems Review of math preliminaries |
ch. 1, 2, Appendix A |
2 | Sketch of solutions to interesting problems by student groups More math preliminaries |
ch. 3, 4 |
3 | Draft solutions to interesting problems by student groups Sets, Relations, Graphs, and Trees Sorting, Priority Queues, Order Statisitics |
ch. 6,7,8,9, Appendix B |
4 | Work on interesting problems Review basic data structures Review Trees and Binary Search Trees Red-Black Trees, B-Trees |
ch. 10, 12, 13, 18 |
5 | Final reports on interesting problems Spanning Trees, and Shortest Paths |
ch. 22,23,24,25, |
6 | Probablility, Hash Tables, Probabalistic Analysis of some previous stuff. | ch. 5, 11, 9.2, 12.4, 15, Appendix C |
7 | Algorithm design and analysis techniques,
Dynamic programming, Greed, Divide and Conquer, Amortized Analysis, Union-Find |
ch. 15,16,17,21 |
8 | Flow and Matching | ch. 26 |
9 | Matrix operations-sequential, Intro to Linear Programming | ch. 28, 29, appendix D |
10 | Linear Programming and multi-threaded algorithms | ch. 29, 27 |
11 | String Matching & Data Compression | ch. 16, 32 |
12 | NP-completeness | ch 34 | 13 | Approximation algorithms (esp. for NP-hard problems) | ch 35 |