Below is a typical set of steps for creating a course that uses JupyterHub:
Create a private GitHub repository for instructor notebooks that include solutions.
Create a public GitHub repository for student-facing notebooks.
Author your notebooks. The Resources and Screen Recordings section below lists two excellent resources to help you get started.
Copy the student versions of the notebooks into the public repository.
Choose a method for distributing notebooks to students:
Use nbgitpuller links to allow students to load each notebook directly (see the resources section for guidance).
Have students download notebooks from GitHub and upload them to the Hub manually.
Optional: Upload datasets to the
shared_readwritefolder of your institution’s hub if you are providing datasets specific to your course. This allows students to access them directly from thesharedfolder.The
sharedfolder is read-only and accessible to all students and instructors on a given JupyterHub. This allows users to access datasets from the hub instead of each user uploading the same dataset to their home folder.The
shared_readwritefolder is read and write and accessible to instructors.If you need access to the
shared_readwritefolder, please open an issue here.More details about these folders can be found in the Materials Sharing section.
Decide how students will submit their work. Most commonly, students download notebooks from the Hub and upload them to your LMS (e.g., Canvas) or a grading platform such as Gradescope.
Resources and Screen Recordings¶
DS Modules — Created by UC Berkeley’s Eric Van Dusen, this guide offers an excellent overview of notebook creation. While the documentation references
datahub.berkeley.edu, you can apply the same process to your own hub at<institution>.jupyter.cal-icor.org.Authoring Notebooks: Start to Finish — This resource includes five screen recordings covering:
GitHub repository creation
Authoring notebooks with and without
otter-graderCreating
nbgitpullerlinks for distributing materials to students