Below are some examples of courses created using the OTTR Template and published on three platforms: Bookdown, Leanpub and Coursera.
Introduction to Reproducibility in Cancer Informatics:
Computing for Cancer Informatics:
To publish your content using Bookdown, you can utilize Github Pages by following the repository setup instructions provided here. It’s important to note that Bookdown serves as a fundamental component for utilizing other publishing platforms such as Coursera or Leanpub. Therefore, if you intend to use Coursera or Leanpub, you will need to publish your content using 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 to your GitHub Repo!!
rmd_files: ["index.Rmd",
"01-intro.Rmd",
"02-chapter_of_course.Rmd",
"03-new_chapter_of_course.Rmd", ## This is the only new line!
"about.Rmd"]
new_session: yes
delete_merged_file: true
language:
ui:
chapter_name: "Chapter "
output_dir: "docs"
Notice how only a single line is different - the line mentioning
03-chapter_of_course.Rmd",
Be careful with quotation marks
(""
) and commas (,
)!
Once this change is made, we can preview the book by typing
bookdown::serve_book()
in the RStudio Console. Note that
when you run bookdown
it will generate an .rds
file; you can generally ignore this file. You will then see a live
version of your book in your RStudio Viewer.
Keep in mind that when a pull request is merged to main, GitHub Actions will re-run
bookdown::render_book()
and the results will be added to
main
.
OTTR contains all the files you need to publish your course to Leanpub. The ottrpal
package takes care of handling and automatically converting the
content into a rendered version that is prepared for Leanpub.
These converted files are stored in the manuscript
folder. As a general rule, don’t edit files in the
manuscript
folder. This folder should be auto generated by
the ottrpal
package and should not be edited.
Note that if you wish to keep your quizzes and their answers hidden, there is some additional setup 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.
The ottrpal
package can handle most of the formatting
tasks for links and other elements for you, as long as you have followed
the formatting instructions provided in the
Setting up images
section of this
Wiki.
Github Actions in this repository will attempt to convert Bookdown to
Leanpub for you by running ottrpal::bookdown_to_leanpub()
function at the top of the repository.
Finalizing your course on Leanpub can be tricky. We have created a course, Using Leanpub, to help guide you.
To host your course on Leanpub, follow these steps:
If you do not have an existing account, create a Leanpub account by visiting this link: https://leanpub.com/.
Start a course:
create a new course
add to plan
buttonTODO: Which plan?
Create Preview
buttonIf 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.
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
(note that it is sometimes vague or outdated). The example question
types in the template are ones that are verified to work.
After you add each new quiz to the quizzes/
directory,
its filename needs to be added in the corresponding spot in the
Book.txt
file (do not edit the one in
manuscript
but the one at the top of the repository); this
ensures Leanpub incorporates the quiz into the book 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 has specific formatting requirements for quizzes, and it will
not generate a preview if any question or quiz does not adhere to these
rules. Our GitHub
Action for checking quizzes (located in file
.github/workflows/pull-request.yml
underneath
check-quizzes
section) will print out a list of errors
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).
The answer choices are not randomized and look like:
? A question is here
a) A wrong answer
B) A correct answer has a capital letter
c) A wrong answer
d) A wrong answer
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
, which uses the
ottrpal
package to check that your quiz conforms to these
rules. If there are any problems, it will report the quiz formatting
errors on your pull request.
C)
for correct
answers m)
for mandatory incorrect answers and
o)
for optional incorrect answers.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.
Your Leanpub course as been created on Leanpub
GitHub
and your main OTTR_Template repository is
linked.Repository is created and set to
private
.
main
branch has been set
up:
Require pull request reviews before merging
box is checked.Require status checks to pass before merging
box is checked.
Require branches to be up to date before merging
box is
checked.This repo has been enrolled in automatic updates from the original template.
Your Book.txt file is up to date.
Once your content has been extensively developed, you might consider adding 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.
If you are from Johns Hopkins: You will need to follow this document and send information to Ira Gooding (iragooding@jhu.edu) 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.
The Github Actions (set up in render-all.yml
) renders
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, the
pull-request.yml
Github Action will convert those quizzes
so they are ready to be uploaded to Coursera.
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.
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 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.
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.
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.
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 can be found right before learning objectives when you are editing content. Adding these helps learners know a bit more about what to expect.
Add an image for your course and consider adding the following to polish your course: * Estimated workload * Skills * Recommended background * Items students will learn
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.