Exploration of the interfaces between combinatorics and Computer Science. Algorithms and data structures that are used to manipulate, generate, and randomly select combinatorial objects, including sets, permutations, combinations, trees, graphs. Methods for analyzing combinatorial algorithms such as recurrence relations, asymptotics, and amortized complexity.
- Either CSC 226 with a minimum grade of B+, or CSC 225 with a minimum grade of B+ and MATH 222 with a minimum grade of B; and
- minimum third-year standing.