Batch teams?

HI, My name is Deb and I teach at UW-Madison.

I’m just getting started teaching a new course, Programming III and hoping to have all students learn Git and how to use GitHub this semester.

I have a Git organization for my class and three teams TAs, Team 1, and Team 2.

If there a way to easily create 30+ teams in GitHub within one organization or a folder within that organization. I would also want to populate them with the students assigned to each team. Can students clone from a “starter” project and then create their own project in their team space.

Thanks for the quick user primer on GitHub,

Hi @deppeler!

The good news:

  • With GitHub Classroom, once you create the three teams, you can re-use them for every assignment: Using Existing Teams in Group Assignments?
  • Students have collaborator access to a shared repository. From there they can clone and push.

The not-great news:

  • Students opt-in to teams from their side

Hope this helps!

Yes, that helps. But, as I will need to make dozens of teams (up to as many as 100 for some semesters), I don’t wish to make them one at a time, and I do wish to have more control over members. Thanks for the quick reply. We have Canvas for a LMS and I can use that for the teams and just let students create their own Git accounts. But, I would not be able to see commits etc for each team. I suppose they could all create their own teams and make me a member of their team. But, then, I fear I would get too many notifications of changes from so many teams.


My experience has been it’s easiest and best to make them work on the same area. I just create one repository per semester (as an example, last semester; note it’s in Spanish), and set up a hierarchy on it for the different kinds of work I will request from them (i.e. homeworks, expositions, practices, projects). Within each of them, successive excercises are generated with numerated directories. My first interactions with them are a couple of simple practices for them to understand forking, cloning, pushing and opening a pull request.
I evaluate them in a single, world-viewable file; I expect the comments I give to each of the students to be useful to the rest of them. And, yes, there could be some copying, but given I do read (and comment on) each of their works, it’s quite unlikely.

1 Like

I am using GitHub Classroom for the first time for a course on Data Structures. In my experience, the easiest way is to let students define their own teams. You have to share some rules with the students beforehand on team naming so that every student can uniquely generate/identify their team name. When accepting an assignment, every student sees a list of existing teams. If their team is not in the list, they can create theirs. Subsequent members will then get the team in their list and just join it.

The above is error prone, of course. I have had students accidentally create a team with the wrong name, join the wrong repository, and even delete their repository. Luckily, there are ways to fix each of these. They are not well documented but you can figure out with sufficient exploring.

Things get complicated (read impossible) when students change teams. I am still trying to figure that one out.

1 Like

Hi @deppeler just writing in to let you know that we’ve shipped the ability for teachers to use GitHub Classroom with Canvas: