CS41

Syllabus

The schedule below is approximate.

Week Topics Readings
1 Introduction to Algorithms-sequential and parallel
Introduction to some interesting problems
Review of math preliminaries
ch. 1, 2, Appendix A
2 Sketch of solutions to interesting problems by student groups
More math preliminaries
ch. 3, 4
3 Draft solutions to interesting problems by student groups
Sets, Relations, Graphs, and Trees
Sorting, Priority Queues, Order Statisitics
ch. 6,7,8,9, Appendix B
4 Work on interesting problems
Review basic data structures
Review Trees and Binary Search Trees
Red-Black Trees, B-Trees
ch. 10, 12, 13, 18
5 Final reports on interesting problems
Spanning Trees, and Shortest Paths
ch. 22,23,24,25,
6 Probablility, Hash Tables, Probabalistic Analysis of some previous stuff. ch. 5, 11, 9.2, 12.4, 15, Appendix C
7 Algorithm design and analysis techniques, Dynamic programming, Greed,
Divide and Conquer, Amortized Analysis, Union-Find
ch. 15,16,17,21
8 Flow and Matching ch. 26
9 Matrix operations-sequential, Intro to Linear Programming ch. 28, 29, appendix D
10 Linear Programming and multi-threaded algorithms ch. 29, 27
11 String Matching & Data Compression ch. 16, 32
12 NP-completeness ch 34
13 Approximation algorithms (esp. for NP-hard problems) ch 35