Test-driven data structures: revitalizing CS2

Software testing is an increasingly important topic in engineering reliable software systems, and test-driven development is an increasingly popular methodology for building reliable systems. However, most software engineering instructors' courses are already very full, so that increasing coverage of testing in those courses can only occur at the expense of another topic. In this paper, we argue that testing should be introduced early in the CS curriculum, that the Data Structures (CS2) course is an especially natural place to emphasize unit testing and test-driven development, and that doing is a way to revitalize the CS2 course.