Course Adoption Guide
Under Cloudbank and with funding from NSF, we are offering resources to teach Data Science courses including the full set of materials used to teach Data 6 at Berkeley.
This guide walks you through the step-by-step process of adopting Data 6 at your institution.
Prerequisites Checklist¶
Before starting, make sure you have:
A GitHub account (create one here if needed)
Institutional approval to use external course materials
Contact information for your IT department (for JupyterHub setup)
Access to your institution’s LMS (Canvas or similar)
Commitment to not distribute solutions publicly
Adoption Timeline¶
Step 1: Privacy Agreement and General Information
Estimated time: 15-30 minutes
Create a GitHub account (if you don’t have one): https://github.com
We need your GitHub username to grant access to private repositories
Complete the Instructor Interest Form: Data 6 Instructor Interest Form
This form helps us understand your needs
You’ll receive access to solutions and resources after completion
Expect a response within 1-3 business days
Step 2: Create a copy of the student materials for yourself
Estimated time: 5-10 minutes
The public student materials are available at https://
Fork the repository: Click the “Fork” button in the top right of the repository page
This creates your own copy that you can customize
You can make changes without affecting the original
Explore the materials: Browse through labs, homeworks, and projects
Familiarize yourself with the structure
Note any materials you want to customize
Step 3: Accepting the GitHub Repository Invitations
Estimated time: 5 minutes
After completing the Instructor Interest Form, you will be added to private solutions and resources repositories as well as any grading infrastructure needed for your students.
Check your email: You’ll receive GitHub invitation emails
Accept invitations: Click “Accept” on each invitation
Private solutions repository
Grading infrastructure organization (if applicable)
Verify access: You should now see private repositories in your GitHub account
Step 4: Canvas Shell and Course Website
Estimated time: 1-2 hours (depending on customization)
We can help you configure the Canvas shell we have set up for you.
Download the Canvas template: Canvas Template Download
Update assignment links for your JupyterHub: The default template links to datahub
.berkeley .edu. If your institution uses a different JupyterHub, use the Canvas JupyterHub rewriter to update the zip or .imscc file before importing: Upload your Canvas template (zip or .imscc file) to the rewriter
Enter your JupyterHub URL (e.g.,
datahub.berkeley.edu/hubor your institution’s hub URL)Enter the materials repository URL — for Data 6, use
https://github.com/dubois-ctds/data-6-materials-studentScan and preview to see how links will change
Check the preview — confirm that old links are being rewritten to your hub and that the repo points to
dubois-ctds/data-6-materials-studentRewrite and download the updated file
Video: JupyterHub rewriter
Import into Canvas: Once you have the rewritten .imscc file (or the original template if using datahub
.berkeley .edu): Create a new course (or use an existing one) — Settings → Start a new course, name it (e.g., “Data 6 example”)
Go to Import Course Content — In your Canvas course, open the course menu and select Import Course Content
Select Common cartridge 1.x package as the content type
Upload the .imscc file (the rewritten file from step 2, or the original template)
Choose import options — For a fresh course, upload all content; for existing content, select specific content, adjust due dates, or overwrite matching assessments
Wait for the import — Status will show “queued” then “running” with a progress bar
Verify the links — After import, click on an assignment (e.g., Homework 1) and check the link in the bottom-left corner of your browser. It should show your JupyterHub URL. Click through to confirm the notebook loads correctly
Video: Uploading the Canvas template
Step 5: Understanding the Student Workflow
Review this before your first class
Here is how students will interact with assignments:
Access: Students log into Canvas and click on an assignment link
Open Notebook: The notebook opens in JupyterHub (in a new tab)
Work: Students complete the notebook, checking answers as they go
Export: Students use the “export” cell at the bottom to download their completed notebook
Submit: Students upload the downloaded file to Canvas
Step 6: Instructor Grading Workflow
Estimated time: 5-10 minutes per assignment (after initial setup)
Download student submissions: Export all submissions from Canvas as a zip file
Get solutions:
Log into the private solutions repository on GitHub
Navigate to the
autograder_zipsfolderDownload the
autograder.zipfile for the assignment you’re grading
Grade automatically:
Use one of the grading methods (see Grading section):
Otter Service Standalone (recommended, web-based)
GradeScope (paid service with Canvas integration)
Local grading (full control, requires setup)
Import grades: Upload the CSV file with grades back to Canvas
Troubleshooting¶
Issue: Can’t access private repositories
Check that you’ve accepted all GitHub invitations
Verify your GitHub username matches what you provided in the form
Contact data6@berkeley.edu if issues persist
Issue: JupyterHub setup taking too long
This is normal - IT departments often need 1-2 weeks
We can help communicate with your IT department
Consider temporary alternatives (Google Colab, Binder) while waiting
Issue: Canvas import errors
Make sure you’re using the correct Canvas version
Check file size limits
Try importing sections individually if the full import fails
Need more help? Contact us at data6@berkeley.edu