Why This Book?

There are plenty of books that teach introductory data structures. Some of them are very good. Most of them cost money, and the vast majority of computer science undergraduate students will shell-out at least some cash on a data structures book.

There are a few free data structures books available online. Some are very good, but most of them are getting old. The majority of these books became free when the author and/or publisher decided to stop updating them. Updating these books is usually not possible, for two reasons: (1) The copyright belongs to the author or publisher, who may not allow it. (2) The source code for these books is often not available. That is, the Word, WordPerfect, FrameMaker, or LATEX source for the book is not available, and the version of the software that handles this source may not even be available.

The goal of this project is to forever free undergraduate computer science students from having to pay for an introductory data structures book. I have decided to implement this goal by treating this book like an Open Source software project. The LATEX source, C++ source, and build scripts for the book are available for download on the book's website (opendatastructures.org) and also, more importantly, on a reliable source code management site (github.com/patmorin/ods).

This source code is released under a Creative Commons Attribution license, meaning that anyone is free to share: to copy, distribute and transmit the work; and to remix: to adapt the work, including the right to make commercial use of the work. The only condition on these rights is attribution: you must acknowledge that the derived work contains code and/or text from opendatastructures.org.

Anyone can contribute corrections/fixes using the git source-code management system. Anyone can fork from the current version of the book and develop their own version (for example, in another programming language). They can then ask that their changes be merged back into my version. My hope is that, by doing things this way, this book will continue to be a useful textbook long after my interest in the project (or my pulse, whichever comes first) has waned.

opendatastructures.org