Planned Syllabus

I. Introduction to Design and Analysis of Algorithms (Chap. 1-3) Example: randomized selection (10.2)

II. Divide and Conquer. Example: Closest Points (35.4)

III. Recurrence Relations (4.1-4.3)

IV. Dynamic Programming: 0/1 Knapsack (16.1-16.3)

V. Greedy Algorithms (17.1-17.2, Handout A: Stable Marriage)

VI. Hashing (12.1-12.3)

VII. Union-Find data structure (22.1-22.3)

VIII. Graph Algorithms (23,24,25.1,25.2,26.1,26.2)

IX Data Compression (17.3, Handout B: Lempel-Ziv, application:gzip)

X. String Matching (34.1, Handout C: Z-Algorithm)

XI. Hard Problems (36)

XII. Convex Hulls (35.3) (if time permits)