If you haven’t read it yet, start with Github for Teaching, Part 1, where I look at why I use Github to track and review homework assignments, how I structure Github use for my class, and how I do assignments. Today I’m talking about challenges I encountered, and my takeaways as I wrap up the lecture portion of the Front End Engineering course here in Orlando. So the fun stuff first: challenges!
But there were challenges, of course…
I had 14 students in my first cohort, and — following that model — every one of them created an issue every night (or first thing in the morning)… That I was supposed to review for completion… That also had a PR attached with code to review… For 9 weeks straight. If you look in the repo for that class, you’ll see a lot of ungraded issues. I’ve only had one other position where I reviewed that much code on a daily basis, and I quickly recognized myself as the bottleneck.
Just spending 5 minutes each with 14 students meant over an hour a day simply grepping issues for completeness (and closing the incomplete ones). Giving just half the students an average of 30 min of code review on each assignment adds another 4 hours. Having The Gates of Ruby as TA helped for some key drives, but I still lost ground quickly.
The end-of-week assignments were worse, because they generated even more code than the daily assignments. O_O
I also struggled with demonstrating code reviews in class, because I didn’t want to call out anyone in particular to either embarrass them or elevate anyone above the others. And despite having them setup a Github Pages repo in the first week, it never occurred to me to have them publish their work to the
gh-pages branch of their repos until one of the other instructors mentioned it.
Takeaways and room for improvement…
Ultimately I find using Github for class management and assignment turn-ins to be much preferable to having the students submit Codepen or JSBin URLs for review. The practice with source control concepts — committing, branching, merging — is extremely valuable, and I can get visibility into their progress, the programming equivalent of “showing your work”.
One of the other instructors recommended using Milestones differently than I had been, to make it easier to see the students’ progress on each specific issue, and I’ll definitely emphasize pushing to the Github Pages branch for future cohorts. If you’d like to read more about this evolving methodology, I’m writing them down in my Github for Teaching repository on Github.