|
This is a first course in the design and analysis of algorithms.
The main focus is on techniques for constructing correct and efficient
algorithms, and on tools to reason about them. Design paradigms include greed,
divide-and-conquer, dynamic programming, and reduction to network flow
problems.
A second focus point is computational intractability. NP-complete problems
are covered, as well as ways to deal with them.
The course forms a foundation for all areas of computer science. The particular computational problems discussed have applications in artificial intelligence, computational biology, compiler construction, hardware and network protocols, and optimization. |
| Jon Kleinberg and Eva Tardos, Introduction to Algorithms. This is a preprint of a soon-to-be-published book. Copies are available at the DoIT store. |
|
CS 240 (Discrete Mathematics), and CS 367 (Data Structures) are essential
prerequisites. The course catalogue also lists Math 222
(second semester of Calculus) but that prerequisite is not as essential
as the other two.
A self-calibration homework will be handed out in the first lecture. |
|
|
The following book is on reserve in Wendt library:
|
| dieter@cs.wisc.edu |