Useful links:
*Some of the lecture notes have been adapted from the notes of Lars Arge.Date | Topic | Reading, Notes* | Other WWW useful material | Assignments |
Mathematical foundations | ||||
Sept 3 | Introduction and overview.
Sorting: Insertion sort. Bubblesort. Selection sort. |
L01.pdf CLRS 1, 2.1-2.2 |
Why? (Sedgewick, Princeton)
Sort animations: all sorts | Progr.pearls |
|
Sep 8 | Asymptotic growth.
Summations. |
growth.pdf |
summations.pdf
CLRS 2.3, 3, 4.1-4.2 |
Program analysis (Princeton)
Zeno's paradoxes. |
H1-growth.pdf |
Sep 10, 15 | Recurrences. | recurrences.pdf
CLRS 4.3-4.4, 7.1-7.2 |
Demo: Merge (Princeton) | Mergesort (Princeton) | H2-recurrences.pdf |
Techniques: Divide-and-Conquer | ||||
Sep 17 | Divide and conquer. | Divide And Conquer.pdf | Divide-and-conquer (Princeton)
Matrix multiplication (Princeton) Closest pair (Princeton) |
|
Searching and Sorting | ||||
Sep 22, 24 | Quicksort. Sorting lower bounds. Linear time sorting (counting sort, radix sort, bucket sort). | quicksort.pdf |
sortLB.pdf
CLRS 7.3-7.4, 8, C.2 |
Demo-partition | 3way partition (Princeton) | H3-sorting.pdf |
Sep 29 | Selection. | selection.pdf
CLRS 9 |
H4-selection.pdf | |
Oct 1 | class rescheduled | |||
Oct 6 | Priority queues: Heaps. Heapsort. | heaps.pdf | CLRS 6 | H5-heaps.pdf | |
Oct 8 | Binary search trees.
|
bst.pdf | CLRS 11, 12 | ||
Oct 10-13 | Fall break | |||
Oct 15 | Skiplists.
Exam review. |
skiplists.pdf | ||
Oct 14-16 evening | Exam 1 | |||
Oct 20, 22 | Balanced search trees. Red-black trees.
Augmented search trees. Interval tree. |
RBtrees.pdf | augtrees.pdf | CLRS 13, 14 | RB Trees (MIT Open Courseware) | Animation | RB-trees (wiki) | H6-bstrees.pdf |
Optimization: Dynamic programming and greedy | ||||
Oct 27, 29 | Dynamic programming. Greedy algorithms. | DynamicP.pdf | Greedy.pdf | CLRS 15.2-15.3, 16.1-16.2 | H7-DynamicGreedy.pdf | |
Analysis: Amortization | ||||
Nov 5 | class rescheduled | |||
Nov 3, 10 | Amortized Analysis. | Amortization.pdf | CLRS 17.1-17.3 | H8-amortized.pdf | |
Nov 12 | Review and problems. | For other practice exams check links.
Fun read: Pessimal algorithms (Broder, Stolfi) |
||
Nov 17-20 evening | Exam 2 | |||
Networks | ||||
Nov 17, 19 | Basics: paths and connectivity, distances, BFS, DFS, CC. Topological sort. Shortest paths. | basicgraph.pdf | shp.pdf | CLRS B.4-B.5, 22.1-22.4, 25.1, 25.2 | Graph vizualizations (Sedgewick, Princeton) | Dijkstra animation | another Dijkstra animation | Slides (Princeton) | H9-graphs.pdf | Nov 24 | class rescheduled |
Nov 26-30 | Thanksgiving break | |||
Dec 1 | Shortest paths. Bellman-Ford algorithm. Dynamic programming and matrix multiplication. | CLRS 25.3, 26 | ||
Dec 3,8 | Minimum spanning trees. Union-find. | mst.pdf | CLRS 24.0, 24.3 | Graph vizualizations (Sedgewick, Princeton) | UnionFind (Princeton) | H10-graphs.pdf | Dec 10 | Graphs in social networks (the small-world phenomenon--Kevin bacon game and Erdos numbers; graph center; diameter).
Review. |
Review.pdf | class evaluation |
December 19, 9am | Final Exam |