Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

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:

Adoption Timeline

Step 1: Privacy Agreement and General Information

Estimated time: 15-30 minutes

  1. Create a GitHub account (if you don’t have one): https://github.com

    • We need your GitHub username to grant access to private repositories

  2. 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://github.com/dubois-ctds/data-6-materials-student.

  1. 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

  2. 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.

  1. Check your email: You’ll receive GitHub invitation emails

  2. Accept invitations: Click “Accept” on each invitation

    • Private solutions repository

    • Grading infrastructure organization (if applicable)

  3. 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.

  1. Download the Canvas template: Canvas Template Download

  2. 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/hub or your institution’s hub URL)

    • Enter the materials repository URL — for Data 6, use https://github.com/dubois-ctds/data-6-materials-student

    • Scan 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-student

    • Rewrite and download the updated file

Video: JupyterHub rewriter

  1. 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:

  1. Access: Students log into Canvas and click on an assignment link

  2. Open Notebook: The notebook opens in JupyterHub (in a new tab)

  3. Work: Students complete the notebook, checking answers as they go

  4. Export: Students use the “export” cell at the bottom to download their completed notebook

  5. Submit: Students upload the downloaded file to Canvas

Step 6: Instructor Grading Workflow

Estimated time: 5-10 minutes per assignment (after initial setup)

  1. Download student submissions: Export all submissions from Canvas as a zip file

  2. Get solutions:

    • Log into the private solutions repository on GitHub

    • Navigate to the autograder_zips folder

    • Download the autograder.zip file for the assignment you’re grading

  3. 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)

  4. Import grades: Upload the CSV file with grades back to Canvas

Troubleshooting

Issue: Can’t access private repositories

Issue: JupyterHub setup taking too long

Issue: Canvas import errors

Need more help? Contact us at data6@berkeley.edu