5/20/2014: 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.
The prerequisites for the class are cs55/math55 and cs62/cs70. Exceptions will be made for students who have taken an advanced proof-based math course and cs52/cs60, but not cs62/cs70. Come talk to me if you have questions about these requirements.
The lectures are on Tuesdays and Thursdays from 2:45-4:00 in Edmunds 101.
The textbook is Introduction to Algorithms, 3rd Edition by Cormen, Leiserson, Rivest, and Stein. Copies are available at Huntley bookstore.
Any topic/readings/assignments that are listed for a date in the future should be taken as (potentially very) tentative. Readings/assignments will be updated by the preceding class; lecture topics will be updated by the following class.
|Week||Date||In class topic(s)||Readings (CLRS)||Assignment due|
|1||(Tue) 9/3|| intro |
review (big-O, insertion sort)
|(Thu) 9/5|| divide-and-conquer |
loop invariants cont.
|2||(Tue) 9/10|| recurrences |
average case analysis
|(Thu) 9/12|| bounding problems |
linear time sorting
|3||(Tue) 9/17|| order statistics |
review (data structures)
|9, 10, 6||ps2b|
|(Thu) 9/19||amortized analysis||17||ps3a|
|4||(Tue) 9/24|| binary search trees |
balanced binary search trees
|(Thu) 9/26|| mergeable heaps: linked lists, heaps, |
binomial heaps, Fibonacci heaps
|5||(Tue) 10/1|| disjoint sets: linked lists, forests, |
union-by-rank, path compression
|(Thu) 10/3||optional review session||ps5a|
|6||(Tue) 10/8|| greedy algorithms: change, |
|16||Midterm 1 due!|
|(Thu) 10/10|| dynamic programming: |
longest common subsequence
|7||(Tue) 10/15|| greedy vs. dynamic programming: |
fractional vs 0-1 knapsack
|(Thu) 10/17|| review (graphs, trees, search/traversals) |
strongly connected components
|B, 22|| ps7a |
ps6b coding (due 10/18)
|8||(Tue) 10/22||*** no class, fall recess ***|
|(Thu) 10/24|| minimum spanning trees: |
greedy choice property
|9||(Tue) 10/29|| minimum spanning trees |
single source shortest paths:
|(Thu) 10/31|| single source shortest paths |
all pairs shortest paths
|10||(Tue) 11/5|| all pairs shortest paths |
network flow: terminology
|(Thu) 11/7|| network flow: min-flow/max-cut, |
maximum bipartite matching
|11||(Tue) 11/12||linear programming||29.1-2||Midterm 2 due!|
|(Thu) 11/14|| P/NP/NPC |
|12||(Tue) 11/19||reductions cont.||34.5||ps11b|
|(Thu) 11/21|| reflections on P/NP/NPC |
|13||(Tue) 11/26||approximation algorithms cont.||35||ps12b|
|(Thu) 11/28||*** no class, Thanksgiving ***|
|14||(Tue) 12/3||parallel algorithms||ps13b|
|(Thu) 12/5||parallel algorithms||ps14a|
|(Thu) 12/12|| |
Problem sets will be posted under the "Resources" tab under the "Course Page" tab at https://piazza.com/hmc/fall2013/cs140/home.