Recommended Workflow for Teaching a CS Course?

Let’s say I’m a CS professor and want to use Gitlab in my course. I would like to do something like this…

  1. Create a code assignment as a project.
  2. Give students the ability to fork the project into their personal Gitlab accounts.
  3. Students would be instructed to create a branch.
  4. Once they’ve completed their work they would create a "merge request’?
  5. Merge the branch back into the main project and have automated test pipelines that run against the branches.

The problem I see is that the students would all be able to see each other’s merge requests. Course they could just fork each other’s projects as well.

Anyway…just wondering if anyone else is doing anything like this or has any thoughts about it. Maybe there’s a better way to make this work.

Thanks,
Matt

I know this post is dated, but what the heck…

GitHub has Education tools and support for education under “GitHub Classroom.”

One of the tools is a script that creates clones of a repo (ex starter code) for each student where only a single student and instructor have access. So students do not see forks of each other’s work. The script requires knowing GitHub usernames first. When you are granted education status you are granted private repos for this.

I have seen scripts that the University of Waterloo (Ontario) appears to have developed themselves in order to automate a similar task on their hosted GitLab.

Justin, I’m working on something similar. I welcome your help in making it :slight_smile:
I’m calling my project “Glee” (Gitlab Educational Environment):

Unlike Github Classroom, there is no need for active server-side code. Just glee running on the instructor’s machine.

Please take a look and help out if you’re interested!