This document is a position paper for the NSF workshop on the future of the data structures course to be held at the Computer Science Department of Duke University on March 22 1997. The fundamental tension in computer science education after the first course is that the highly valuable concepts and techniques of the traditional algorithms and data structures curriculum must compete for time and attention with the methods needed for building large scale programs with integrated IO and graphics . The traditional material in an algorithms and data structures course provides a careful microscopic examination of the design of data structures and the algorithms that operate on them. This material is valuable because it teaches students how to engineer the ultimate components from which software is built.
Programs is no longer valid.
Students must learn to depend upon and trust the work of others by using toolkits and libraries provided as language standards, as compiler vendor frameworks, as faculty developed support tools, and as modules created by fellow students in team collaboration. There is no doubt that it is will not be easy to make a transition from a traditional algorithms and data structures curriculum to one which treats the design issues of building flexible components using toolkits and libraries. Faculty will need to plan carefully what examples and exercises are used and will need to pay close attention to student reactions to guage when help is needed or a change in course is advisable. At the same, there is also no doubt that if such a transition does not take place, the curriculum will come to be seen as archaic and irrelevant in a world in which the use of toolkits, libraries, and application frameworks is becoming the standard. Here are some thoughts on this question.