Multi-phase assignment

We are going to have a project in a course I’m teaching. We have broken the project into multiple phases, and students will work in groups of two. Hence, we have several milestones (and deadlines), and we expect students to turn in their work in multiple phases. Technically I can do this with having multiple assignments on GH Classroom. However, students need to have access to their code in the previous phases as they continue working on the same problem. They just complete different parts for each milestone.

My question is what’s the best way of using GH classroom in this case?


I would stick to one assignment and implement “deliverables” (aka work packages the student turns in when a deadline is reached) as subsequent pull-requests.

In this context, the starter repository underlying the assignment (from which the students’ repositories will be forked) can outline the required workload in two different manners:

  1. It can outline the whole roadmap at once within the
  2. By contrast, if teachers do prefer to keep next phases undisclosed, they can add instructions for the new deliverable to the starter repo’s at the convenient time and then ask students to pull those instructions locally through a git remote (instructions for this can be included as well).
1 Like

We do have the whole roadmap in the beginning, and we can release it.
What you suggested is actually a good idea. I’ll wait to see whether anyone else has a better alternative solution.


There is another way of doing this which just came to my mind. How about having one assignment, and postpone the deadline every time we pass a milestone? We we reach a milestone we can take a snapshot of all the repos, then postpone the deadline till the next milestone. Would this work?

It could be doable and it should be easy to implement a quick test to verify the effect of such process within the Classroom dashboard to see whether multiple snapshots will be retained if the deadline expires and then is postponed.

Alternatively, you can just set up the deadline at the very end of the roadmap and use the Classroom Assistant to download the content of the students’ repos at each milestone.

If you want to do it right™.

For each stage create an issue in the student repo.

As the stage is complete have the students close the issue with the correct commit comment.

Optionally and useful, have them tag the commit for each milestone.

Tagging is definitely useful. This way it feels like an official submission.