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