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