[Bowdoin Computer Science]

Csci 231 Fall 2009 Syllabus

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