Analysis of algorithms
· Schedule of topics
Fall, 2010 ·
Department of Computer Science
·
Grinnell College
August 27. The nature and history of algorithms.
August 30. Resource-use functions.
In preparation for this session,
please study chapter 1 (pages 5-15) in Cormen et al.
September 1. Asymptotic notation.
In preparation for this session, please
study chapter 2 from the beginning through section 2.2 (pages 16-29) and
all of chapter 3 (pages 43-64) in Cormen et al.
September 3. Divide-and-conquer.
In preparation for this session, please
study chapter 2 from section 2.3 to the end (pages 29-42) and chapter 4
from the beginning through section 4.4 (pages 65-93) in Cormen et
al.
September 6. The master theorem.
In preparation for this session, please
study chapter 4 from section 4.5 to the end (pages 93-113) in Cormen et
al.
September 8. Random-number generation.
September 10. Randomized algorithms.
In preparation for this session,
please study chapter 5 (pages 114-145) in Cormen et al.
September 13. Heaps and priority queues.
In preparation for this session,
please study the introduction to part II (pages 147-150) and chapter 6
(pages 151-169) in Cormen et al.
September 15. Quicksort.
In preparation for this session, please study
chapter 7 (pages 170-190) in Cormen et al.
September 17. Linear-time sorting methods.
In preparation for this
session, please study chapter 8 (pages 191-212) in Cormen et al.
September 20. Order statistics.
In preparation for this session, please
study chapter 9 (pages 213-227) in Cormen et al.
September 22. Red-black trees.
In preparation for this session, please
study chapters 12 and 13 (pages 286-338) in Cormen et al.
September 24. Interval trees.
In preparation for this session, please
study chapter 14 (pages 339-355) in Cormen et al.
September 27. (pause for breath)
September 29. Dynamic programming.
In preparation for this session,
please study the introduction to Part IV and chapter 15 (pages 357-413) in
Cormen et al.
October 1. File compression.
In preparation for this session, please
study chapter 16 from the beginning through section 16.3 (pages 414-437) in
Cormen et al.
October 4. Fibonacci heaps.
In preparation for this session, please study
chapter 19 (pages 505-530) in Cormen et al.
October 6. Binomial heaps.
In preparation for this session, please study
problem 19-2 (pages 527-529) in Cormen et al.
October 8. Disjoint-set structures.
In preparation for this session,
please study chapter 21 (pages 561-585) in Cormen et al.
October 11. Graph search.
In preparation for this session, please study
the introduction to Part VI and chapter 22 from the beginning through
section 22.3 (pages 587-612) in Cormen et al.
October 13. Topological sort.
In preparation for this session, please
study chapter 22 from section 22.4 to the end (pages 612-623) in
Cormen et al.
October 15. (pause for breath)
October 25. Spanning trees.
In preparation for this session, please study
chapter 23 (pages 624-642) in Cormen et al.
October 27 and 29. Shortest-path problems.
In preparation for this session,
please study chapters 24 and 25 (pages 643-707) in Cormen et al.
November 1, 3, and 5. Network flows.
In preparation for this session,
please study chapter 26 (pages 708-766) in Cormen et al.
November 8. Multithreaded algorithms.
In preparation for this session,
please study chapter 27 (pages 772-812) in Cormen et al.
November 10. Gaussian elimination.
In preparation for this session, please
study chapter 28 (pages 813-842) in Cormen et al.
November 12. Generating permutations, combinations, and partitions.
November 15. Euclid's algorithm.
In preparation for this session, please
study chapter 31 from the beginning through section 31.5 (pages 926-954) in
Cormen et al.
November 17. Primality testing.
In preparation for this session, please
study chapter 31 from section 31.6 to the end (pages 954-984) in
Cormen et al.
November 19. String matching.
In preparation for this session, please
study chapter 32 (pages 985-1013) in Cormen et al.
November 22. Intersection of line segments.
In preparation for this
session, please study chapter 33 from the beginning through section 33.2
(pages 1014-1029) in Cormen et al.
November 24. Convex hulls.
In preparation for this session, please study
section 33.3 (pages 1029-1039) in Cormen et al.
November 29. Closest pair of points.
In preparation for this session,
please study chapter 33 from section 33.4 to the end (pages 1039-1047) in
Cormen et al.
December 1. Approximation algorithms.
In preparation for this session,
please study chapter 35 (pages 1106-1140) in Cormen et al.
December 3. Dancing links. In preparation for this session, please study
Donald Knuth's
paper Dancing
links.
December 6. Simulated annealing.
December 8. Genetic algorithms.
December 10. Algorithms and ethics. Student evaluations.
·
· 
This work is licensed under a Creative Commons
Attribution-ShareAlike 3.0 United States License.
This text is available on the World Wide Web as
http://www.cs.grinnell.edu/~stone/courses/algorithms/syllabus.html
created July 2, 2000 · last revised December 1, 2010