Prerequisites: CS 141; graduate standing
Description: Covers efficient algorithms and data structures for problems from a variety of areas such as sorting, searching, selection, linear algebra, graph theory, and combinatorial optimization. Focuses on techniques for algorithm design (greedy, divide-and-conquer, dynamic programming) and rigorous proofs of correctness and time- and space-complexity (amortized analysis, Master Theorem).
Credit: May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.