Computer Science 226
Algorithms and Data Structures
Spring 2008


Course Information | Assignments | Lectures | Administration

SCHEDULE OF LECTURES

Here is a tentative list of lectures and the slides used in class. Students are fully responsible for all material presented in lectures, even if some of it does not appear in these slides. These slides are intended for the lecture presentations; for reference, use the corresponding chapters in Algorithms in Java Parts 1-5 (third edition) and the online handouts. An effective strategy is to look over the indicated chapter before the lecture, then read it in detail soon afterwards.

# LECTURE NOTES CHAPTER BOOKSITE DEMOS
1 Union-find 1 0
2 Analysis of algorithms 2 1.1 - 1.2
3 Stacks and queues 3-4 2.6
4 Elementary sorts 6 3.1  
5 Efficient sorts 7-8 3.2 - 3.3 merging   partitioning
6 Advanced topics in sorting 8 3.5
7 Priority queues 9 3.4
8 Elementary symbol tables 12 4.1
9 Binary search trees 12, 13 4.2 Growing Tree Tool
10 Balanced BSTs 13 4.3
11 Hashing 14 4.4
Midterm (through lecture 10)
13 Undirected graphs 17-18 5.1 DFS   BFS   maze
14 Directed graphs 19 5.2 DFS   topological sort
15 Minimum spanning trees 20 5.3 Graph applet
16 Shortest paths 21 5.4 Dijkstra
17 Radix sorts 10 6.1  
18 Tries 15 6.2
19 Pattern matching 19* 6.3 - 6.4 DFA   KMP  
20 Data compression 22* 6.5 Huffman*   LZW*
21 Geometric algorithms 24-25* 7.1 - 7.2 convex hulls
22 Geometric search 26-27* 7.3 - 7.4 sweep line intersection
23 Reductions - 8.5  
24 Combinatorial search - 8.7 The Longest Path [mp3]

The lectures denoted by * are from the last offering of the course. New lectures will be posted by 10am on the day of the lecture. The chapters denoted by * are from the second edition, and are available in PDF from the Princeton University network. All other chapters are from the third edition. We have only begun to build the booksite for the 4th edition, but you might find it useful since it contains links to the Java code from lecture.


Copyright © 2007, Bob Sedgewick and Kevin Wayne.