rstudio::conf(2022)
Designing the data science classroom
Mine Çetinkaya-Rundel + Maria Tackett
We need an environment where
data, analysis, and results are tightly connected, or better yet, inseparable
reproducibility is built in
documentation is human readable and syntax is minimal
RStudio Cloud > “Module 6 - Reproducibility” > ex-1-1.qmd
Centralize the distribution (and collection) of all student assignments
Enable students to work collaboratively
Make Git & GitHub part of student workflow
On Github
1 organization per class
1 repo per (student or team) per assignment
Student and team repos all private by default
Select the option for a free course organization.
You will need to provide the following to request teacher benefits:
A brief description of how you plan to use GitHub
Establishing connection to an academic institution by verifying with a school-issued email address + school ID or some other proof of academic affliation
Information about the school - link to website, address, etc.
Verification is manual and can take up to a few days.
Click New Classroom and select the GitHub organization.
You can skip the remaining set up steps for now.
Use the code below to install ghclass
Use the code below to load ghclass
Need students’ GitHub usernames at a minimum
Recommend collecting emails, as students might make a typo in their GitHub username
You need to instruct students to create GitHub accounts
Consider data privacy rules of institution / country (e.g. you may need to enter a data protection agreement for GDPR compliance)
Give some guidance for choosing a username
Can have students choose and submit username as an in-class activity during the first week of classes.
ghclass
uses the GitHub API to interact with your course organization and repos - the API verifies your identity using a personal access token which must be created and saved in such a way that ghclass
can find and use it.
GITHUB_PAT
using## ✔ Invited user 'minebotmine' to org 'design-ds-class'.
## ✔ Invited user 'rundel' to org 'design-ds-class'.
org_create_assignment()
function to create copies of the starter repo with correct permissions for each of your students (or teams)[DEMO]
[DEMO]
Go to the course organisation on GitHub: github.com/teach-ds-conf22
Locate your HW 01, read through the Getting Started section, follow the instructions.
Then, go through the Hello Git and Warm up sections.
Add your answer to Question 1, then commit and push again.
If there is no GitHub repo created for you for this assignment, let me know.
Clone the repo using SSH.
15:00
[DEMO]
Go to the course organisation on GitHub: github.com/teach-ds-conf22
Locate your Lab 03 and read through the Getting started section and follow the instructions with your team members.
10:00
Use the GitHub UI to add issues to each student’s repo
Instructors (and TAs) can view all repositories within the course organization.
Make sure to @
mention the student so that they are notified when an issue is opened.
Consider keeping points out of issues.
Now you’re the instructor:
First, I’ll change everyone’s permission level and make you Owners. (Please don’t delete any repos!)
Go to the GitHub organization for our “class” and observe that now you can see all repos.
Go into the individual repo (HW 01) for your neighbor. Open an issue and add some text to the issue. In the issue @
mention their username. Submit your issue.
Now you’re a student: Check your email to confirm that you got notified of an issue being filed by your neighbor
in your repo, then review the issue in on GitHub.
10:00
Clone student repos to review their work locally