Suggestions for classroom

Hi,

We tried using github classroom this semester as a tool for assignements for a devops class we are teaching.
Here is some critical feedback about our experience and why we won’t be able to use it again in the future.

  1. Public vs Private Repos : I understand how public repo and open source is a big focus for github. But in the context of a classroom, privacy is important to avoid cheating. private repos are almost a de facto choice, and the usual github restrictions to private repos makes classroom really hard to use.

  2. Branch policy : Students who create a private repo in classroom for their assignments don’t have access to branch protection. We can’t teach them branch protection in relation to pull requests and not pushing on the main branch. Github support recommended changing the Organization type so that these restrictions would be lifted, but unlike verifying yourself as a legitimate student/TA , verifying the organization takes alot more paperwork and must be renewed every semester for every organization.

  3. External services uses organization for credits, making teaching alot more expensive : ie. Travis-CI integration is nearly impossible in the context of a github classroom because the credits are billed to the github organization instead of the individual repos. This means that although each student team would have enough credits on their own, github classroom’s organization forces them to use the same limited resource. This broke all of our student’s CI/CD pipelines one day before they had to turn in their work, paralyzing everyone.

Proposed changes : Remove the requirement for github classroom student repos to be under an organization.
This means student status can be applied normally to individual repos, and these repos can be used with other services as their own independent entity.

Hi @julegault

  1. With the GitHub Education program, you can easily enable free private repositories for your organization. It is sufficient to be qualified for teacher benefits.
  2. Enabling branch policies can be done by assigning students admin rights (tick the corresponding assignment option from within the classroom dashboard). Of course, turning students into repo admins is not advisable as they can decide for example to make their repos public. You can get around this problem by using scripts that can run after creation in batch leveraging on GitHub API.
  3. Have you ever considered switching to GitHub Actions in place of Travis? Honestly, GitHub Actions provides better levels of CI with respect to Travis, just only because it is natively integrated within GitHub (but there’s much more than this). GH Actions are not indefinitely free in private repos but the free quota assigned is not small at all.

A couple of final comments on this:

but unlike verifying yourself as a legitimate student/TA

Only one admin needs to verify the organization: no TA, no students.

verifying the organization takes alot more paperwork and must be renewed every semester for every organization

That’s very far from my experience. Verification is required once a year (as it must be as, after all, we benefit from the free usage of a professional tool) and it’s just a matter of sending out a snapshot of our academic badge. GitHub has always responded in one workday.

Proposed changes : Remove the requirement for github classroom student repos to be under an organization.
This means student status can be applied normally to individual repos, and these repos can be used with other services as their own independent entity.

Well, not really a good solution as teachers will lose control if repos are created on students’ accounts where they are admins.

1 Like
© 2017 GitHub, Inc.
with by
GitHub Education