The Online Data Structures and Algorithms Textbook Project

This project began with my writing the textbook "A Practical Introduction to Data Structures and Algorithm Analysis" orginally published by Prentice Hall (now Pearson) in 1997. While the various editions sold reasonably well initially, I did not keep up with the new-edition publishing cycle demanded by textbook publishers, and by the time I finally completed a draft of the Third edition, Pearson was no longer interested in publishing it. So they returned the publication rights to me.

During this time, I had also become increasingly interested in Algorithm Visualizations (AVs) for use in teaching CS courses. That interest lead to our project to develop the AlgoViz Portal. I also became interested in the idea of a free online text book that integrates the text with interactive algorithm visualizations. By the time I was seriously working on the Third Edition version of the text, I was quite torn between the idea of a free online text versus the traditional print publication process. So it came as something of a relief to me when Pearson decided not to publish the text and returned the publication rights to me. This left me free to pursue the vision of an online, interactive textbook.

I began posting the PDF versions for the 3rd edition for both the JAVA and C++ versions in 2010. A number of instructors picked it up and have been using it in their courses. A couple of publishers contacted me about print rights to the book, and in 2011 I reached an agreement with Dover Publications to print both the C++ and JAVA versions, while leaving me with the right to continue posting the book for free online. This gives a great opportunity for students to choose whether to use the online version for free, or to get a high-quality print version at a low price. The Dover version became available in Fall 2011.

Meanwhile, I have made progress on the idea of a textbook of the future. Of course, producing such a thing is a lot of work, far greater than jsut writing a normal textbook. To this end, I am working with a number of collaborators to create the OpenDSA project. The goal of the OpenDSA project is to create materials with the following features:

This vision is now being realized in the form of the OpenDSA project. See the OpenDSA Project Homepage for information about what we are doing, examples of our modules, visualizations, and interactive exercises, and how you can join the project.

Return to Cliff Shaffer's homepage.