Lecture Topics Winter 2006

  • 1. 1/4/06. Introduction (Why algorithms, growth rates, selection (9.2) ) Chapter 1

  • 2. 1/6 Coin Changing (program on web page), Closest Point algorithm (33.4)

  • 3. 1/9 Closest Point algorithm (33.4), Recurrence Relations (4.2)

  • 4. 1/11 Recurrence Relations (4.2-4.3)

  • 5. 1/13 More Recurrence Relations (4.1 9.2).

  • 6. 1/18 Randomized Algorithms (5.1,5.2), Hashing: Intro. Chaining (11.1, 11.2),

  • 7. 4/20 Hashing: Chaining (11.1, 11.2), Expected performance

  • 8. 1/23 Hashing: Expected performance Open Addressing (11.4)

  • 9. 1/25 Dynamic Programming: Coin Changing, Assembly line (15.1 )

  • 10. 1/27 Dynamic Programming: Assembly line, knapsack (16),

  • 11. 1/30 Dyanamic Programming: LCS 15.4,

  • 12. 2/1 Greedy : Knapsack (16.2), Activity Selection (16.1)

  • 13. 2/3 Greedy : stable marriage: Web handout,

  • 14. 2/6 Union-Find (21.1-21.3),

  • 15. 2/8 Task scheduling with weights (16.5), Graphs, intro: representations

  • XX. 2/10 Midterm

  • 16. 2/13 Graphs BFS, DFS, Strong components (22.5)

  • 17. 2/15 Topsort (22.5); MST: Kruskal's, Prims, (23)

  • 18. 2/17 on Prim's expected performance, Intro shortest paths

  • 19. 2/22 Dijkstra (24.3), Acycllic shortest paths (24.2)

  • 20. 2/24 Shortest paths: Bellman-Ford, (24.1); All pairs (25.2)

  • 21. 2/27 Shortest Paths: Application. Data Compresssion: Huffman codes (16.3)

  • 22. 3/1 Data Compression: Lempel-Ziv (handout), Gzip (Web handouts)

  • 23. 3/3 Gzip, String matching: brute force, Finite State Machines (34.1, 34.3),

  • 24. 3/6 Finite state machine string matching: web handout; Suffix trees

  • 25. 3/8 Suffix trees (web handout), easy/hard problems: P (34.2)

  • 26. 3/10 P,NP: easy/hard problems, (34.3-34.4)

  • 27. 3/10 More on P,NP: easy/hard problems, reductions (34.3-34.4)

  • 28. 3/15 Approximation Algorithms: Vertex cover and Bin packing (35.1)