After reading @dondi’s workflow for using pull requests to provide feedback to students, I wanted to try it this semester. I wasn’t exactly sure what steps were involved, but I found a workflow that worked for me and I wanted to share it. I decided that a screencast would be an easier way to illustrate the steps rather than trying to type every step.
In general, the key is to edit one of the student’s files (the edit is simply to provide an opportunity to comment in the pull request) so a branch and pull request can be created. At this point, comments can be left where each change was made.
In the past, I’ve provided feedback as comments via Canvas’ SpeedGrader. This new approach is much better in that the code on which I’m providing feedback is adjacent to the specific comment. Once students see that the assignment is marked complete in Canvas, they check the “feedback” pull request to review my comments. If they have questions or if they have answers to questions that I’ve asked, they can continue this conversation in the pull request. While this isn’t a traditional use for pull requests, it works well and it’s good for students to be familiar with participating in conversations for pull requests.
Please comment if you have any suggestions to improve this workflow or if you have any questions!
Love this, but watching the video it’s a little clicky. When you’re doing a bunch do you batch things (like going into Bluejay to see them run)?
This past time, I worked through one student at a time. I’ll see if that becomes cumbersome in the future. For a more complicated lab, I may leave feedback as comments in the code which would still show up as changes in the pull request. This would allow me to stay in BlueJ and not comment on the GitHub web site. I do know some teachers have scripts that clone all student repositories at once. Regardless, while there are a lot of steps, there a fewer for me than what I did last year!
Here’s my grading-via-PRs workflow, without the need to make an edit :
template
master
on the right side and selectingtemplate
on the left side (base)I’m still experimenting with it but it seems to work well enough.