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. Recommended prerequisite: Computer Science 201; or recommended corequisite: ECE 551; or equivalent.