Textbooks:
Other resources/recommended reading:
Other resources/recommended reading (more advanced topics):
Prerequisites: CSC162 or CSC172 or MTH172.
Aug. 26 Tue - Introduction.
Aug. 28 Thu - When does greedy algorithm for the coin change problem work?
[minor homework #1 due (released: 8/26)]
Sep. 2 Tue - Dynamic programming for the coin change problem. Knapsack (integer weights).
[minor homework #2 due (released: 8/28)]
Sep. 4 Thu - Knapsack revisited (integer values). Longest increasing subsequence.
[minor homework #3 due (released: 9/2)]
Sep. 9 Tue - Edit distance. Chain matrix multiplication.
Sep. 11 Thu - More dynamic programming problems.
Sep. 16 Tue - Review.
[minor homework #4 due (released: 9/9)]
Sep. 18 Thu - EXAM #1 (topics: Greedy algorithms/Dynamic programming).
Problem sessions:
Sep. 23 Tue - Undirected graphs, finding connected components, DFS.
Sep. 25 Thu - Directed graphs, strong connectedness, linearization (topological sorting).
[minor homework #5 due (released: 9/23)]
Sep. 30 Tue - Strongly connected components.
Oct. 2 Thu - BFS, Shortest paths (Dijkstra).
[minor homework #6 due (released: 9/25)]
Oct. 7 Tue - Dealing with negative edge weights (Bellman Ford). Floyd-Warshal.
Oct. 9 Thu - Matchings I.
Oct. 14 Tue - FALL BREAK.
Oct. 16 Thu - Matchings II.
[minor homework #7 due (released: 10/9)]
Oct. 21 Tue - Minimum spanning trees.
Oct. 23 Thu - Modeling with linear programs I (classical problems).
Oct. 28 Tue - Solving systems of equations (Gaussian elimination), solving systems on inequalities (Fourier-Motzkin elimination).
Oct. 30 Thu - Duality, Modeling with linear programs II (zero-sum games).
Nov. 4 Tue - Modeling with linear programs III.
[minor homework #8 due (released: 10/23)]
Nov. 6 Thu - EXAM #2 (topics: Graph algorithms, Linear Programming)
Problem sessions:
Nov. 11 Tue - Fast fourier transform, convolution I.
Nov. 13 Thu - Fast fourier transform, convolution II.
[minor homework #9 due (released: 11/11)]
Nov. 18 Tue - NP completness, reductions I.
Nov. 20 Thu - NP completness, reductions II.
Nov. 25 Tue - NP completness, reductions III.
Nov. 27 Thu - THANKSGIVING (no class).
Dec. 2 Tue - Divide and conquer algorithms.
[minor homework #10 due (released: 11/18)]
Dec. 4 Thu - EXAM #3 (topics: NP completness, divide and conquer algorithms, fast fourier transform