Illustrating the Interaction of Algorithms and Data Structures
A thorough understanding of algorithms and data structures is essential for any student of Computer Science. In this paper we present a sequence of programming projects that elegantly integrate both the study of algorithmic paradigms with an illustration of how the choice of data structure significantly impacts an algorithm. We do this in the context of a single, easily understood problem domain, that of finding a maximum matching in a graph. By focusing on only a single problem, students more fully appreciate the concept that any problem can be solved in a variety of different ways.