Broken concept or misunderstanding? Classrooms vs orgs

While I’ve used git and GH for years, I am only now trying out the “Classroom” feature. There seem to be some conceptual aspects that are quite “broken,” perhaps as a result of trying to retrofit existing GH orgs and features into the “Classroom” feature. Or, I’m misunderstanding!

As it sits, we can only create one “classroom” per org. I already have an Org for my institution, and after adding the first class to it, I now see that I can not add another classroom to the existing org. Instead, GH seems to be encouraging a one-classroom-per-org model. Am I understanding this incorrectly?

I teach eleven courses a year… this is a long list of orgs to deal with. Why can’t orgs be orgs and classrooms be an entity under them? The result would just be repos with a particular naming scheme, eg:


It’s almost easier to just do this manually rather than use the GH Classroom interface and the conceptual model it communicates.

Please do educate me if I’m not understanding things correctly.

1 Like

@ybakos for Classroom, we do recommend a single org per class per semester.

You can keep a canonical version of your course in your uni org, and fork it to a new org each semester.

Unfortunately the workflow you are suggesting is not available at this time, but if you feel strongly, please do make the case as an issue in the Classroom repo:

I’m using Classroom for the first time this semester with the approach mozzadrella mentioned above. I too initially thought it might work the way you suggest, and was initially a bit frustrated with it, but I’ve now embraced this idea. Honestly, now that I’m trying to work with it more, I rather like it. Particularly with using Classroom to create private assignment repositories as it will make each new class section cleaner to look and manage through the web interface. I also think that it makes things cleaner for student who can now choose whether or not they want this work on their personal profile or not.

This the first semester I’m using classroom, and only really using it to get the private repositories for students. Before I would create a new org, but fork the assignments over to it. Since I didn’t do a fork for my first semester though, this brought along all my old pull-requests, which is how I had students turn in work. So I kept pulling along a big chain of past stuff, which lead to some cheating and I just didn’t like it for privacy reasons.

Now that I’m using classroom, I do not fork the main org assignments. I just let classroom create the student repositories from the template in the new semester specific org. If I had two different sections of the same class, I think I would keep them in the same “semester” org as well, just for the sake of simplicity. Any changes to the assignments semester to semester I will just make in the main org as a new “release” version or a new repository.

If you’d like to see what I have, I set up a main course Main Course HTC CCIS 1301 which has the template assignments and some general things like course websites for each semester. I will then have semester specific organizations. HTC CCIS 1301 Summer 2017 is my first semester using classroom with private repositories only for student assignments. (I got tired of having to call out copied assignments.) It won’t be very exciting to look at, as all the repositories there are private.

As a comparison, my previous semester HTC CCIS 1301 Spring 2017 shows a forked public repository approach without the use of Classroom.

I’ve learned a lot from the sharing that others have done here in the community, and I still feel like there is so much more potential for this that I have not yet touched. I’m hoping to embrace more of that over the summer to share with the other instructors at my own institution, and if I get there, I’ll share with the community here as well.