Configure an OpenDSA eTextbook
OpenDSA is an eTextbook project developed at Virginia Tech. OpenDSA
materials include many visualizations and interactive exercises that
support courses in a wide variety of Computer Science-related topics such
as Data Structures and Algorithms (DSA), Formal and Programming Languages.
OpenDSA has hundreds of visualizations and exercises.
Most algorithms and data structures are illustrated by interactive
algorithm visualizations. 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. Go to the
OpenDSA website to
read more about OpenDSA.
A course instructor who is using the Canvas LMS can add OpenDSA materials
directly into their Canvas courses appearing as Modules and Assignments
in Canvas. Below are the detailed instructions for how to configure an
OpenDSA eTextbook.
To configure a new eTextbook, click on the Create
Book menu item located at the top of the page.
You will be taken to a new page (shown below) where you can create your
own Book Instance.
Following is the explanation of each field:
Load Existing Configuration (Optional)
1. Select Reference Configuration: You may select
from a number of configuration files that are stored on the OpenDSA
server. These can be useful as a starting point for creating your own
configuration.
2. Select Your Configuration: If you have
created/uploaded a configuration to the OpenDSA server in the past, you
may load it and make modifications to it. If you only wish to change
the point values of the exercises in the book, you may update the
existing configuration directly. If you wish to modify the content of
the book (e.g. add or remove modules), you must save your configuration
as a new template book.
3. Select Configuration File: If you have a book
configuration file (.json), you may load it using this option.
Book settings
These are global settings that describe or apply to the entire book.
- Title: This will be the title of the book
- Description: A short description of the book
- Language: The language of the content in the book.
This will determine which modules are available for you to choose
from. The vast majority of OpenDSA content is currently only
available in English.
- Code Languages: OpenDSA modules sometimes contain
sample code. You may select which languages you wish for these code
samples to appear in. If you select multiple languages, the code
sample container will have a tab for each language (unless you
disable Tabbed Code-include), with the tabs ordered based on how you
order the languages in the interface. You may reorder the languages
using drag-and-drop. It is important to note that code samples are
usually not available in every language, but most code samples are
available in Java.
- Global Exercise Options: These are options that
will apply to every exercise.
- JSAV Debug: This option can be useful for developers of OpenDSA
exercises. It enables the debug flag for JSAV exercises, which
results in some debugging information being printed to the
browser console.
- Global Slideshow Options: These options will apply
to all slideshows, unless explicitly overridden for individual
slideshows. Note that these generally should not be changed from Not
Required and 0 Points if you are planning to use the configuration
for a Canvas course. This is due to current limitations preventing
multiple gradable items per Canvas assignment.
-
Required: Whether the completion of the slideshow is required for
module proficiency.
-
Points: The number of points completion of the slideshow is
worth.
- Global Khan-Academy Exercise Options: These are
options that will apply to all Khan-Academy style exercises, unless
explicitly overridden for individual exercises.
-
Required: Whether the completion of the exercise is required for
module proficiency.
-
Points: The number of points the exercise is worth.
-
Threshold: The number of questions the student must get correct
to achieve proficiency.
-
Global Proficiency Exercise Options: These are
options that will apply to all proficiency style exercises, unless
explicitly overridden for individual exercises.
-
Required: Whether the completion of the exercise is required for
module proficiency.
-
Points: The number of points the exercise is worth.
-
Threshold: The proportion of steps the student must get correct to
achieve proficiency. Must be between 0 and 1, where 1 means the
student must get all steps correct to achieve proficiency.
-
Global External Tool Options: These are options that
will apply to all external tool exercises unless the same settings
are specified for the specific external tool, or overridden for a
specific external tool exercise.
-
Points: The number of points the exercise is worth.
-
Global Code-Workout Options: These are options that
will apply to all Code-Workout exercises, unless explicitly overridden
for individual exercises.
-
Points: The number of points the exercise is worth.
-
Other Options: These are simple options that are
either enabled or disabled.
-
Build JSAV: Controls whether or not the JSAV library should be
rebuilt whenever the book is compiled.
-
Display Module Completion: If enabled, will force the "Module
Complete" message to appear even if the module contains no
required exercises. If disabled, the "Module Complete" message
will not appear, even if the module DOES contain required
exercises.
-
Narration Enabled: This controls whether or not a button should
be shown for each slideshow that will turn on text-to-speech
narration for that slideshow.
-
Suppress ToDo: Controls whether or not TODO messages are
displayed. This should generally be enabled.
-
Tabbed Code-include: Controls whether or not code samples are
displayed in a tabbed interface. If enabled, it will display
code samples in each of the languages selected in Code
Languages section (if the code exists) in a tabbed container.
If disabled, it will display the code in a single language (the
first language for which the code exists with the order of
precedence determined by the order specified in the Code
Languages section).
Book Content
This two-pane drag-and-drop interface allows you to specify the content
that should be in your book. Before you can select the content in your
book, you must first either 1) select the book language, or 2) load an
existing configuration.
-
The left pane (Included Modules) lists the content that is included
in your book.
-
The right pane (Available Modules) lists content that is available to
be included in your book.
-
Books are organized into chapters, with each chapter containing one
or more modules. You choose the names of chapters, as well as which
modules should be included in each chapter.git status.
-
A module may contain zero or more sections, and a section may contain
zero or more exercises and/or slideshows.
-
To add a chapter to your book, click the "+ Chapter"
button and enter a name for the chapter.
-
To remove a chapter and all of its modules from your
book, right click on the chapter, and then click "Delete".
-
To add a module to your book, left-click and hold
and drag a module from the Available pane and drop it (release your
left mouse button) in the Included pane in the desired chapter. You
can select multiple modules by holding Ctrl (Mac: ⌘) and clicking on
the desired modules. To select multiple sequentially listed modules,
click on the first module, then hold Shift and click on the last
module.
-
To remove a module from your book, right click on
the module in the Included pane, and then click "Remove".
-
Reorder chapters and modules in your book using
drag-and-drop. The order of the chapters and modules in the Included
pane will be the order of the chapters and modules in your book.
-
To override the global settings for an individual
exercise, right click on the exercise, and then click "Edit
Settings".
-
To hide a section in the book, right click on the
section, and then click "Hide Section".
Saving Your Configuration
Once you are finished configuring your book you can:
1. Click "Save New Configuration" to save the configuration as a
template book to the OpenDSA database. The book will then show up
in the list of available books when creating a new course.
2. If you have loaded one of your existing configurations you can
click "Update Configuration". You can then update your Canvas
course by regenerating it. Note that this option does not support
removing chapters and/or modules.
3. Click "Download Configuration" to download a JSON file
containing the configuration.