Derivation of time and space complexity of algorithms. Typical algorithms investigated include minimum spanning tree, shortest path, network flow and string matching. Advanced treatment of dynamic programming, greedy algorithms and randomized algorithms. Discussion of NP-Completeness. Correctness proofs of algorithms.
Fall 2019, Spring 2019, Fall 2018, Spring 2018, Fall 2017