Open DSA

Welcome to the homepage for the OpenDSA Active-eBook Project. Our goal is to develop a complete online textbook for data structures and algorithms (DSA) courses. This will include:

Hundreds of instructional modules, where each module is the equivalent to one topic, such as one sorting algorithm, corresponding to a couple of pages in a standard textbook. Each module is of textbook quality.

Every algorithm or data structure is illustrated by an interactive algorithm visualization. Students could enter their own test cases to see how the algorithm or data structure works on that input, and they can control the pacing of the visualization.

Every module contains multiple interactive assessment activities that give students immediate feedback on their proficiency with the material. This means many hundreds of exercises.

We will accomplish this through an open-source, creative commons environment. “Open Source” means that not only can anyone use the materials, they can also access the source code that generates the materials. “Creative Commons” means that anyone has permission to modify or remix the materials for their own purposes. You as an instructor (or even a student or professional who wants to self study) will be able to pick and choose from the selection of modules and exercises, automatically generating a custom textbook that contains exactly the topics you want. Since all materials are open source, you can rewrite any part if you don’t like what is already there. Infrastructure will be included that lets you register students and then track their progress through the modules and exercises.

A major complaint of students in DSA classes is that they do not get enough practice problems, or sufficient other means of testing their proficiency. One of the most important aspects of our vision is a rich set of exercise that ensure that the student is understanding the material as he/she progresses through the book. Our modules will contain a mix of content, visualizations, and exercises. We make extensive use of the Khan Academy exercise infrastructure to build interactive exercises.