OTTR course examples

Here is a list of examples courses made with the main OTTR Template and has been published in three platforms: Bookdown, Leanpub and Coursera.

Introduction to Reproducibility in Cancer Informatics:

Computing for Cancer Informatics:

Choosing publishing platforms

This template helps you prepare material to publish, but there are certain steps that cannot be automated. In those instances we’ve provided step-by-step guides to get you started on getting your material published on the platforms.

Depending on your goals and intended audience you may want to publish just one or all three of the platforms supported:

OTTR spinoff babies

We are working to create other versions of our original template for specific uses. This could be a technical variation to do something more simple, something tangential, or something more complex compared to the original OTTR template.

We also noticed that if specific branding or variations of the original template need to be used many times, it’s often easier to create a new template.

We affectionately call these spinoff templates OTTR “babies”.

If you find yourself making a full set of courses and multiple repositories from OTTR, you may want to make a template from our template (If you need to go this route, we recommend talking directly to the OTTR maintainers by filing a GitHub issue and assigning @cansavvy and @carriewright11). Also please reach out if you have any other fun ideas!

OTTR website

A simplified spinoff template of the original OTTR was created to make websites:

AnVIL template

This is a template made from our main OTTR Template that is used for a set of courses being made for the AnVIL set of cloud tools

Courses will look similar to this link.

DataTrail template

This is a template made from our main OTTR Template that will be used for a set of courses being made for the DataTrail

Courses will look similar to this link.

Publishing with Bookdown

Bookdown is published using Github pages which you can set up following the set up repository instructions. Using Bookdown is fundamental to the other publishing platforms, so if you want to use Coursera or Leanpub you will have to publish with Bookdown.

As you modify the names of the chapters of your course and add more chapters (using the .Rmd files), you need to update the _bookdown.yml file accordingly.

For example let’s say that we added another chapter and named the file 03-new_chapter_of_course.Rmd. We would update our _bookdown.yml to look like this:

book_filename: "Course_Name"  
chapter_name: "Chapter "  
repo: https://github.com/jhudsl/OTTR_Template/ ##Make sure you update this for your GitHub Repo!!  
rmd_files: ["index.Rmd",  
            "01-intro.Rmd",   
            "02-chapter_of_course.Rmd",   
            "03-new_chapter_of_course.Rmd",  ##Only this is new!
            "about.Rmd"]  
new_session: yes  
delete_merged_file: true  
language:  
  ui:  
    chapter_name: "Chapter "  
output_dir: "docs"  

Notice how only one line is different - the one that says 03-chapter_of_course.Rmd", Be careful about quotation marks: "" as well as commas: ,!

Once we do this we can preview the book!

You can do so by typing: bookdown::serve_book() in the RStudio Console.

Note that when you run bookdown it will create an .rds file; you can generally ignore this file.

You will then see a live version of your book in your RStudio viewer.

Note that When a pull request is merged to main, bookdown::render_book() will be re-run by the GitHub actions and the results added to main.

Publishing with Leanpub

OTTR contains all the files you need to publish your course to Leanpub. The ottrpal package does the handling and automatic conversion to a rendered version that is ready for Leanpub.

These converted files are stored in the manuscript folder. As a general rule, don’t edit files in manuscript folder. This folder should be autogenerated by the render ottrpal and you in general shouldn’t make edits to it.

Note that if you wish your quizzes and their answers to remain hidden, there is a bit more set up involved with this process and you will need to create a separate private OTTR_Quizzes repository to store these quizzes. Start with these instructions first if you want your quizzes and answers to be hidden.

Leanpub rendering

The ottrpal package can do most of the formatting of links and etc for you (so long as you followed the formatting prescribed by the Setting up images section of this Wiki.

Github actions in this repository will attempt to do the Bookdown to Leanpub conversions for you by running ottrpal::bookdown_to_leanpub() function at the top of the repository.

Hosting your course on Leanpub

To host your course on Leanpub follow these steps:

  1. Make a Leanpub account here: https://leanpub.com/ if you don’t already have one.

  2. Start a course

  • Click on the 3 line menu button
  • Click the author tab on the far left
  • Click Courses
  • Click the text that says create a new course
  • Fill out all the necessary information
  • Select using Git and GitHub (if you work with us at JHU there is a different protocol and additional settings you need to set which you should follow - see this document )
  • press the add to plan button
  1. Preview a new version
  • Click on the 3 line menu button
  • Click the author tab on the far left
  • Click Courses
  • Click on your course name/icon
  • Click “Preview New Version”
  • Click Create Preview button

If you have errors in your course (typically from a quiz formatting issue) the render will fail and you will need to fix your quizzes. Also note, that occasionally the preview might fail and you should just try again, as it will work the second time. This might be due to a lag in GitHub and Leanpub communicating.

Setting up quizzes

Quizzes need to be stored in the quizzes/ directory. Edit and add quizzes to this directory. See and copy this template quiz to get started. All quizzes need to be written in the Markua format. Refer to their documentation (but note that it is sometimes vague or out of date). The example question types in the template are ones that are verified to work.

After you add each new quiz to the quizzes/ directory, it’s filename needs to be added in its respective spot in the Book.txt file (remember do not edit the one in manuscript but the one at the top of the repository); this ensures its incorporated by Leanpub in the correct order.

If you wanted two quizzes (one called quiz_1.md and one called quiz_2.md) you could duplicate and modify quiz_1.md for your needs and then you could make the Book.txt file look like this (assuming you created a chapter called "03-chapter_of_course.Rmd" and you wanted quiz_1 to be after 02-chapter-of_course and quiz_2 to be after 03_chapter_of_course:

01-intro.md  
02-chapter_of_course.md  
quiz_1.md  
03-chapter_of_course.md  
quiz_2.md  
about.md  

Note that any .md files with an # in front of the name in the Book.txt file will be ignored by Leanpub. We have included an example of this in the Book.txt file.

See an example quiz here Note that you cannot have two quizzes with the same quiz_id.

Leanpub quizzes

Leanpub is specific about how quizzes should be formatted and it won’t create a preview if any question or quiz doesn’t follow these rules. Our GitHub action for checking quizzes (In file, .github/workflows/pull-request.yml underneath check-quizzes section) will print out a list of errors for you which you can retrieve from a pull request comment that is automatically printed. This check is only run when changes are made to the quizzes/. At this time, two types of questions are supported. (Short answers are not yet supported by our checks but will be added in the future).

Standard multiple choice:

The answer choices are not randomized. And it looks like this:

? A question is here
a) A wrong answer
B) A correct answer has a capital letter
c) A wrong answer
d) A wrong answer
Choose answers

You can use choose-answers option which will randomize the multiple choices or you can use a standard quiz question that doesn’t randomize. The notation for the answer choices are: C) for correct answers m) for mandatory incorrect answers and o) for optional incorrect answers.

Note that the number given for the number of answers has to be at least equal to the number of correct and mandatory incorrect answers listed.

Here’s an example:

{choose-answers: 4}
? A question is here
C) The correct answer is signified with a capital C
m) A mandatory incorrect answer
m) A mandatory incorrect answer
o) An optional incorrect answer
o) An optional incorrect answer

Upon merging to the main branch, a GitHub action will automatically run check-quizzes.yml that will use the ottrpal package to check that your quiz conforms to these rules. It will report the quiz formatting errors on your pull request should there be any problems.

Leanpub quiz formatting ‘rules’

  • Quizzes start and end with the {quiz} and {} tags.
  • Don’t have exclamation points or colons in answers.
  • Make sure there’s at least one right answer.
  • Check that the question and quiz attributes used are attributes recognized by Leanpub. -
  • Make sure all quizzes are listed in Book.txt
  • The number of choose answers is at least as big as the number of mandatory and correct answers listed.
  • For choose-answers questions, use C) for correct answers m) for mandatory incorrect answers and o) for optional incorrect answers.
  • Check that the question and quiz attributes used are attributes recognized by Leanpub.

Converting quizzes from Leanpub to Coursera format

See more instructions on how to port a course made from these templates to Coursera.

You can convert your quizzes to a nicely upload-able yaml file in this repository by running this command in the docker image

ottrpal::convert_quizzes()

Note that currently images and links are not supported and if your quizzes contain those, you will have to manually add them at this time.

You can run this same command locally if you wish to test something. This render the chapters without the table of Contents. If you do not wish to publish to Coursera and prefer this do not run, you may delete this section (but it shouldn’t hurt anything to keep as is – unless for some reason it causes you some troubles).

Additionally, the ottrpal package has a ottrpal::convert_quizzes() function if you choose to create quizzes and publish on both Leanpub and Coursera.

Setting up the _Quizzes repository checklist:

Publishing with Coursera

Once your content has been largely developed you may want to add your course to Coursera.

This guide was prepared specifically for those developing courses for the ITN project at Johns Hopkins University or other Coursera partner institutions. It reflects the needs and goals of ITN course developers. Coursera’s Educator Resource Center is the authoritative source of documentation for using the Coursera platform.

Setting up your Coursera course

If you are from Johns Hopkins: You will need to follow this document and send information Ira Gooding who will create a course shell for you.

If you are not from Johns Hopkins: You will need to set up your own educator profile and course shell through your institution.

Converting your files for upload to Coursera

The Github actions set up in the render-all.yml render your course material in a format suitable for linking to Coursera. This Coursera version is identical except that the table of contents bar on the left side has been dropped so as to not confuse Coursera users about navigating the course. These files can be previewed in the docs/no_toc folder and a link to the Coursera version is printed out in a GitHub comment in your pull request by render-preview.yml.

If you have written your quizzes in Leanpub format first, render-all.yml github action will convert those quizzes so they are ready for upload to Coursera.

Or alternatively if you do not wish to have a Leanpub version of your course, you can write your quizzes directly on Coursera’s website. You can download the quiz you write on their website as a yaml and store it on your repository as well.

Add programmed messages

You can click on Go to Course. And on your main course page click Edit Course in the right corner.

This will bring you to your version page.

Underneath Content, on the left side bar, at the bottom, there is the Programmed Messages.

At the very least you should add a Welcome to the course and a Completion programmed message. Click on each of these to edit them. Click Preview and then Publish to save your edits.

Here are some templated messages to get you started:

Welcome template message:

Welcome to {Course Name}

We hope this course will {What will they learn?}

To get the most out of the course {What do you advise?}

If you ever encounter any problems with the course, have questions or ideas, please let us know using this feedback form.

Add a link to your feedback form by clicking the link icon. Click Preview and then Publish to save your edits.

Completion template message:

Congratulations and thank you for completing {name of course}!

We hope this course has {What do you hope they learned}.

If you have feedback about our course we'd greatly appreciate you filling out this form.

Add a link to your feedback form by clicking the link icon. Click Preview and then Publish to save your edits.

Grading formula

For final grades in the course, you will need to set the Grading Formula. To get to this page, you can click on Go to Course. And on your main course page click Edit Course in the right corner.

This will bring you to your version page.

Now you can set the percentage that each module’s assignments are worth in the course.

Content Schedule

You can find the settings for this under the Content tab. Here you can modify how each of your modules should be assigned to each week of your course.

Module Descriptions

Module descriptions can be found right before learning objectives when you are editing content. Adding these helps learners know a bit more about what to expect.

Landing Page

Add an image for your course and consider adding the following to polish your course: * Estimated workload * Skills * Recommended background * Items students will learn

Reading about multiple reading formats

Since we are publishing on Coursera using plug-ins and because there are concerns about accessibility with plug-ins, we encourage you to point out that the course material is available elsewhere in a reading at the very beginning of your course so that students can find it right away. To create a reading, you can click the add reading button which is located to the add quiz button. If you need to, you can rearrange elements of the first module and move this reading to the top of the course by clicking and dragging the three horizontal line icon on the far left of the reading section.

Title the reading as:

Multiple Lesson Formats

Modify the following based on your course and publishing plans and paste into the reading:

Like many of our other courses, the content of this course is available in multiple formats.
You can also find the lessons for this course at [insert Bookdown link here]. This format might be most appropriate for you if you rely on screen-reader technology.
Our courses are open source, so you can also find all the source material on GitHub  by visiting [insert GitHub link here].
These resources are used throughout this Coursera course in the form of ungraded plug-ins. You are welcome to use those plug-ins here on Coursera or connect to the content in other formats through the links above. Please select the format that most suits your needs.
Note about links in the plug-ins: The plug-ins used throughout the course feature links to other resources. To follow these links, right-click on them and open in a new tab or window.
Regardless of the format you choose for the instructional content, you must take and pass the quizzes here on Coursera if you want to earn a Coursera certificate.