The mathematical theory of algorithms and graphs and their practical implementations. Examines the foundational mathematical structures for the behavior and analysis of algorithms from a variety of domains, with a particular emphasis on graphs. Students tie theory to practice by writing code to implement algorithms, and compare experimentally observed run-times to those predicted by the mathematical theory. Prerequisite: Computer Science 201 or corequisite of ECE 551 or equivalent.