Course Outline for CompSci 161

( * indicates topic to be discussed only if time allows,     week indications are approximate)

Introduction [CLR 1-3, 6.1-6.3 and Append.A,B,C;   B 1, 3]
1 Course requirements, induction proofs [B 3.4]
Complexity and asymptotics [CLR 3;   B 1.4;   GT 1.2]
Models of computation
Examples of algorithm analysis
 
Searching, sorting, lower bounds [CLR 6, 8;   B 4-5]
2 Searching - sequential, binary, interpolation [B 1.6]
Insertion sorts - straight, binary, Shellsort [B 4.2, 4.10]
Lower bounds on sorting - inversions, travel, decision [CLR 8.1;   B 4.7;   GT 4.4]
Heapsort [CLR 6;   B 4.8]
3 Distribution sorts - bucket, lexicographic [CLR 8.3;   B 4.11;   GT 4.5]
Lower bounds on selection [B 5.1-5.3, 5.5]
*Review
4 .........first exam
 
Divide-and-conquer [CLR 4, 7, 9;   B 3.6-3.7;   GT 5.2]
Selection of median [CLR 9;   B 5.4]
5 DC paradigm - MaxMin
Integer multiplication [GT 5.2.2]
DC Theorem [CLR 4.3;   B 3.6-3.7;   GT 5.2.1]
Time analysis of Mergesort, Quicksort [CLR 7;   B 4.4-4.6;   GT 4.1.1, 4.3]
Strassen matrix multiplication [CLR 4.2;   B 12.3.4;   GT 5.2.3], the skyline problem
 
Dynamic programming [CLR 15;   B 10;   GT 5.3 ]
6 Product of matrices, common subsequences [CLR 15.2-15.4;   B 10.3;   GT 5.3.1, 9.4]
Optimal binary search trees [CLR 15.5;   B 10.4]
7 Nim, *Fibonacci numbers
*Review
.........second exam
 
Graph algorithms [CLR 22-25;   B 7-9]
8 Minimum spanning trees - Prim, Kruskal, Boruvka, hybrid [CLR 23;   B 8;   GT 7.3.1-7.3.4]
Depth-first search - components, biconnectivity [CLR 22.3;   B 7.6-7.7;   GT 6.3.1-6.3.2]
9 Transitive closure, all-pairs shortest paths [CLR 25.1-25.2;   B 9;   GT 7.2]
Single-source shortest path (Dijkstra) [CLR 24.2-24.3;   B 4.3;   GT 7.1.1]
 
Other topics
Pseudo-polynomial algorithms - 0/1 knapsack dynamic pgm'ng
10 String matching - KMP algorithm [CLR 32.1, 32.4;   B 11.3;   GT 9.1.4]
*Probabilistic algorithms [CLR 5.3, 31.8]
*Review
.........final exam (cumulative)

You are responsible for having read CLR 1-10, 15, 22-25.2, 32.4
You are strongly urged to read Baase 1-4, 5.1-5.2, 6.2, 8.1-8.3

References

CLR
Cormen, Leiserson, Rivest, and Stein Introduction to Algorithms (3rd ed.), MIT Press, 2009.
B
Baase, Van Gelder Computer Algorithms (3rd ed.), Addison-Wesley, 2000.
GT
Goodrich and Tamassia, Algorithm Design, John Wiley, 2002.

Last modified: Mar 22, 2013