Skip to content

Data 6: Computational Thinking with Data Science and Society

Data 6, "Introduction to Computational Thinking with Data Science and Society," is an introductory, interdisciplinary course taught at UC Berkeley. It combines statistics, computer science, and social science to give students a practical introduction to computational thinking and exploratory data analysis. The full set of materials is available to adopt.

Quick start

1. Get access

Create a GitHub account if needed, then complete the Instructor Interest Form (expect a response within ~24 hours). Fork the student materials at ucb-dsus-adopters/data-6-materials-student, and accept the invitations to the private solutions repository (ucb-dsus-adopters/data-6-materials-solutions) and the Otter Service Standalone org.

Screen recording: forking the student materials

2. Set up Canvas

Download the Data 6 Canvas template.

Point assignments at your JupyterHub

Canvas JupyterHub rewriter: quick start

  • Open the Canvas JupyterHub rewriter
  • Upload your Canvas template (.zip or .imscc file)
  • Enter your JupyterHub URL (e.g., datahub.berkeley.edu/hub or your institution's hub URL)
  • Enter your fork of the student materials. Fork ucb-dsus-adopters/data-6-materials-student first, then use your fork URL (e.g., https://github.com/YOUR_GITHUB_USERNAME/data-6-materials-student)
  • Scan and preview to see how links will change
  • Confirm links point to your hub and your fork, then rewrite and download

When do you need this?

The default template links assignment URLs to datahub.berkeley.edu. If your institution uses a different JupyterHub, run the template through the rewriter before importing into Canvas so assignment links open on your hub and pull notebooks from your fork, not the upstream Berkeley repo. A video walkthrough is below.

Import into Canvas

We recommend importing the cartridge into a new Canvas course. After the first import, copy that course inside Canvas from term to term instead of re-importing the cartridge into an existing shell (re-importing can duplicate items that do not share the same internal IDs).

  • Create a new course: Settings → Start a new course, name it (e.g., "Data 6")
  • Go to Import Course Content from the course menu
  • Select Common cartridge 1.x package as the content type
  • Upload the .imscc file (the rewritten file from the rewriter step, or the original template if using datahub.berkeley.edu)
  • Upload all content for this initial import
  • 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

What's in the Canvas shell

The Canvas shell includes:

  • Reading assignments embedded as quizzes (ensures student engagement)
  • Week-by-week course structure
  • Pre-configured assignment links
  • Gradebook setup

Other LMS platforms

If you're not using Canvas, the core notebooks are platform-independent and can be linked from any LMS.

3. Student workflow

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

4. Grade with Otter

The Otter Service Standalone is a web-based service for grading notebooks, with no local installation required. The service is available at https://grader.datahub.berkeley.edu/.

In-browser version

Otter Service In-Browser runs the same grading entirely in your browser. Upload the autograder.zip from Step 3 and your submissions from Step 2, and the grades CSV downloads directly, with no authorization or download code. The hosted service and the steps below remain available.

Screen recording: grading walkthrough (5 min)

Step 1: Authorization. To access the service, we add your GitHub username to our Otter service organization. Once you have been added, accept the invitation by opening the otter-service-stdalone organization, then log in to the grader with your GitHub account.

Step 2: Download your student submissions. Export submissions from Canvas. You can grade a folder of notebooks by compressing it into a zip file and uploading that, or grade one notebook at a time by uploading the notebook itself.

Step 3: Download the solution files (autograder.zip). In the private solutions repository (ucb-dsus-adopters/data-6-materials-solutions), browse to the autograder_zips folder and download the autograder.zip for the assignment you are grading. If you do not have access yet, complete the Instructor Interest Form or email ds-help@berkeley.edu.

Step 4: Upload and grade. In the "Grade" section, upload your autograder.zip and the student submissions, then press Grade Notebooks. A "download" code appears under the button. You will need it for the next step.

Step 5: Download your results. The system grades roughly one minute per ten notebooks. When it finishes, enter the code from Step 4 into the "Results" section and a folder with a log file and a CSV file downloads. The CSV contains the grades by notebook; if anything fails, check the log file first.

Version requirement

Data 6 notebooks are configured with otter-grader 6.1.6. If you grade locally, install exactly that version:

pip install otter-grader==6.1.6

Instructor grading checklist

  1. Download student submissions: Export all submissions from Canvas onto your machine.
  2. Get solutions: Log into the private solutions repository (ucb-dsus-adopters/data-6-materials-solutions), navigate to the autograder_zips folder, and download the autograder.zip for the assignment you are grading.
  3. Grade automatically: Log into the grader at https://grader.datahub.berkeley.edu/ with your GitHub username and grade the submissions (see Otter Autograding).
  4. Import grades: Upload the CSV file with grades back to Canvas.

Please do not distribute solutions

Access to ucb-dsus-adopters/data-6-materials-solutions is granted on the condition that solutions are not redistributed. This protects the integrity of the course materials for every adopting institution.

Course notes

The Data 6 course notes serve as lecture notes for the course (source: data-6-berkeley/notes). They complement each topic but should be supplemented with foundational texts linked within the notes.

Explore the materials in your browser

The full course calendar is also available as an in-browser notebook preview, with links to slides, worksheets, and videos where available. It runs the notebooks directly in your browser (xeus-lite), so it is handy for previewing the materials. It is not meant for active classroom use, but it is a quick way to explore what the course covers.

Browse Data 6 notebooks in your browser

License

The Data 6 course notes are licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC-BY-NC-SA 4.0). Under ShareAlike, if you adapt the notes you must release your version under the same license. See Understanding Licenses for how to read these terms.

Acknowledgments

This material is based upon work supported by the U.S. National Science Foundation under award Nos. 2245877, 2245878, 2245879, and the California Learning Lab. Learn more about the DUBOIS project at dubois-ctds.github.io.

Need help?

Email ds-help@berkeley.edu or see Support.