Student-oriented vs. assignment-oriented workflow

(Tom Loredo) #1

Hi classroom colleagues-

I first taught a class with GitHub-based assignments in 2015, before GitHub Classroom existed. I wrote some scripts to support a student-oriented workflow. Each student maintained a single repo in our org, with its name based on their GitHub ID. For each assignment, they’d create a folder in their repo (“Assignment01” etc.), where they’d copy a Jupyter notebook (well, IPython notebook back then!) with the assignment (and perhaps some stub files). They’d push the assignment back when they finished. We (the grader and/or me) would pull all the repos at the deadline, grade the notebooks, record the grades, and push the repos back with the graded notebooks. The students dealt with only a single repo for their assignments; we dealt with only a single repo per student.

Fast forward 3 years, and I’m teaching that course again, with plenty of updates, including possibly a new GitHub workflow. The recommended GitHub classroom workflow is assignment-oriented, with each assignment/student combination now its own repo. I’m considering this workflow, but initially inclined to stick with my previous workflow, in part because of familiarity and our investment in the scripts.

I’m sure the GitHub classroom devs considered various workflows. It would be helpful to know the rationale for the final choice. Are there serious shortcomings of the student-oriented repo approach we took back in 2015 that should dissuade me from using it again?