OpenDSA (Development Channel)
This is the development repository for the OpenDSA project.
The goal of the OpenDSA project is to create open-source courseware for use in Data Structures and Algorithms courses, that deeply integrates textbook-quality content with algorithm visualizations and interactive, automatically assessed exercises.
System documentation can be found at http://opendsa.readthedocs.io/.
To check out a read-only copy of this repository:
git clone git://github.com/OpenDSA/OpenDSA.git OpenDSA
To check out a read-write copy of this repository (requires permission to commit to the repo):
git clone https://YOURGITHUBID@github.com/OpenDSA/OpenDSA.git OpenDSA
Once you have cloned this repository, you will need to install the OpenDSA stack using Docker. Do the following:
[Note that this won't work unless you have the proper tools installed. See: http://opendsa.readthedocs.io/en/latest/GettingStarted.html#setting-up-a-local-development-environment
OpenDSA makes use of the JSAV data structures visualization library. Nearly all developers and users can make do with the version of JSAV distributed with OpenDSA. If you really need the most up-to-date version of JSAV, you can find it at https://github.com/vkaravir/JSAV
The source files for the OpenDSA documentation can be found in the "Doc" directory. Changes to the documentation source, once pushed back to the repository, will automatically revise the public version at readthedocs.io. You can also re-compile the documentation by going to the "Doc" directory and typing "make". The result will then be in "Doc/manual".
The major components in the directory structure are as follows:
AV: Source code for various algorithm visualizations and associated exercises. Subdirectories divide the content by topical areas.
Books: Created by the build process, this contains compiled versions of "textbooks".
config: This holds configuration files for specific books (whose output will go to the "Books" directory).
Doc: Documentation. Currently includes a template for Khan Academy multiple choice questions, and documentation for using the various Sphinx directives that we have created.
Exercises: Our Khan Academy Infrastructure-based exercises. Subdirectories divide the content by topic.
lib: System-wide library files
Makefile: Primarily for source file validation and to generate some of the "textbooks" to the Books directory.
MIT-license.txt: The license file. OpenDSA is distributed under an MIT open source license.
ODSAkhan-exercises: Obsolete, will be removed soon. We used to keep our own hacked-up copy of the Khan Academy exercise framework.
QBank: A question bank system under development. This is a submodule maintained at: https://github.com/cashaffer/QBank.
README.md: This file
RST: Contains our custom Sphinx directives used during the build process and the source for tutorial content written in reStructuredText (RST) format and divided by language and sub-divided by topic area.
**Storyboard: Materials related to "storyboarding" designs for tutorials. This concept never gained much traction, and this might be removed at some point.
WebServer: A command for invoking a simple python-based web server that will enable you to run the Khan Academy exercises if your machine is not running a true web server. You only need to have python installed for this to work.
khan-exercises: The Khan Academy exercise framework. This is a submodule maintained at: https://github.com/OpenDSA/khan-exercises. This is a mirror of the actual khan-exercises repository (https://github.com/Khan/khan-exercises), that we buffer here for stability.