[ news | information | lectures | problem sets | links ]
CS140 - Spring 2005
TR 2:45-4:00 in Andrew 157
Prof. Chen
5/17/2005: I've archived all of the notes and problem sets (ie,
most of the links below don't work) and am
only leaving up the syllabus for reference. If you're looking for the
material, you may be able to find a link to a more recent offering of
the class here or
here.
Please check here regularly for assorted announcements. You are
responsible for being aware of information posted here.
CS140 is an introduction to algorithm design and analysis techniques.
The course covers basic techniques used to analyze algorithms, basic
techniques used in designing algorithms, and important classical
algorithms. The goal is to help you understand how to apply all of
the above to designing solutions for real-world problems (a skill that
you will practice throughout the semester).
The prerequisites given in the catalog are incorrect. They should have
been given as cs55/math55 and cs70 (though exceptions will be made for
students who have taken an advanced math course and cs52/cs60, but not cs70).
The lectures are on Tuesdays and Thursdays from 2:45-4:00 in Andrew 157.
The textbook is Introduction to Algorithms, 2nd Edition
by Cormen, Leiserson, Rivest, and Stein. (It's available at Huntley
bookstore.)
Any topic that's listed for a date in the future should be taken as
tentative. Any topic that's listed for a date at least 2 days in the
past is what was actually covered in that lecture.
| Week | Date | In class | Reading | Assignment due |
| 1 | (Tue) 1/18 | introduction, administrivia, review
|
| (Thu) 1/20 | loop invariants asymptotics
| 2.1-2 3.1-2 | ps1a
|
| 2 | (Tue) 1/25 | divide & conquer technique
mergesort solving recurrences
| 2.3, 4.1-2 | ps1b
|
| (Thu) 1/27 | master method quicksort worst/average/best case analysis | 4.3-4, 7.1-4 | ps2a
|
| 3 | (Tue) 2/1 | bounds, linear time sorting
order statistics | 8, 9
| ps2b
|
| (Thu) 2/3 | data structures, heaps | 10, 6 | ps3a
|
| 4 | (Tue) 2/8 | amortized analysis | 17 | ps3b
|
| (Thu) 2/10 | binary search trees red-black trees
| 12, 13 | ps4a
|
| 5 | (Tue) 2/15 | AVL trees, disjoint sets
| 13, 21 | ps4b
|
| (Thu) 2/17 | mergable heaps | 21 | ps5a
|
| 6 | (Tue) 2/22 | review, miscellaneous | | ps5b
|
| (Thu) 2/24 | No class | | midterm
|
| 7 | (Tue) 3/1 | greedy algorithms | 16 | ps6
|
| (Thu) 3/3 | dynamic programming | 15 | ps7a
|
| 8 | (Tue) 3/8 | dynamic programming | 15 | ps7b
|
| (Thu) 3/10 | intro to graphs, bfs, dfs | B.4, 22.1-3 | block program
|
| 9 | (Tue) 3/15 |
No class - Spring Break
|
| (Thu) 3/17 |
|
| 10 | (Tue) 3/22 | strongly connected components topological sort | 22.4-5 | ps8
|
| (Thu) 3/24 | minimum spanning trees | 23 | ps9a
|
| 11 | (Tue) 3/29 | single source shortest path | 24 | ps9b
|
| (Thu) 3/31 | all pairs shortest path | 25 | ps10a
|
| 12 | (Tue) 4/5 | network flow | 26 | ps10b
|
| (Thu) 4/7 | review | | ps11a
|
| 13 | (Tue) 4/12 | network flow | 26 | midterm
|
| (Thu) 4/14 | linear programming | 29 | ps12a
|
| 14 | (Tue) 4/19 | introduction to computational complexity polynomial time reductions
| 34.1-34.3 | ps12b
|
| (Thu) 4/21 | lots of reductions | 34.3-34.5 | ps13a
|
| 15 | (Tue) 4/26 | reductions, approximation algorithms | 34, 35 | ps13b
|
| (Thu) 4/28 | approximation algorithms | 35 | ps14a
|
| 16 | (Tue) 5/3 | review
|
"Computers do not solve problems, they execute
solutions"
--Laurent Gasser