New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow Multiple Classrooms Per Organization #595

Open
tabinks opened this Issue May 14, 2016 · 52 comments

Comments

@tabinks

tabinks commented May 14, 2016

Now that GitHub has unlimited repositories for educational organizations (I'm making this assumption since my account was upgraded, although I never saw anything official from GitHub), it would be useful to have multiple classrooms per organization. You are currently only allowed to have a single classroom per organization.

For example, if I had an organization named "University-CS101", I could have classrooms for "Fall-2015,Winter-2016,Spring-2016, etc.". Previously, there could only be a single classroom for the organization and I would have to create organizations name "University-CS101-Fall-2015", etc. This would allow educators to organize by the course.

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 20, 2016

Member

it would be useful to have multiple classrooms per organization.

I think this is something we want to support eventually. For now, you can create another organization and apply for the education program at https://education.github.com/discount to get free private repositories for your course.

We decided to limit it to one classroom per organization at first because it's easier to move to multiple classrooms per organization than it is to move the other way.

Would love to have your input on how this would work, what do you imagine the flow looking like? Can you use more than one organization per account? How do you group repositories from multiple courses in one organization?

Member

johndbritton commented May 20, 2016

it would be useful to have multiple classrooms per organization.

I think this is something we want to support eventually. For now, you can create another organization and apply for the education program at https://education.github.com/discount to get free private repositories for your course.

We decided to limit it to one classroom per organization at first because it's easier to move to multiple classrooms per organization than it is to move the other way.

Would love to have your input on how this would work, what do you imagine the flow looking like? Can you use more than one organization per account? How do you group repositories from multiple courses in one organization?

@drbeco

This comment has been minimized.

Show comment
Hide comment
@drbeco

drbeco May 24, 2016

I support this idea. For example, one organization should be enough to put together diverse classrooms from one teacher (I teach 4 courses, -- each semester --).

Also, if we can have multiple owners in one organization, we can set other professors to be part of it. Then we would actually have the hierarchy:

  • Organization: University Foobar
  • Team1: Professors
  • Team2...N: different groups of students from the same class, or different classes, or a subset for each task and so on.
  • Classrooms: each professor can create several within the organization
  • Assignments: each classrooms can have multiples assignments, each one with a different team, that can or cannot intersect with others. (groups or teams of students working together in a task)

I'm new to these business (github education and classroom) but I like the way it is going, and I hope we will have more freedom to organize our stuff.

Thank you all!

drbeco commented May 24, 2016

I support this idea. For example, one organization should be enough to put together diverse classrooms from one teacher (I teach 4 courses, -- each semester --).

Also, if we can have multiple owners in one organization, we can set other professors to be part of it. Then we would actually have the hierarchy:

  • Organization: University Foobar
  • Team1: Professors
  • Team2...N: different groups of students from the same class, or different classes, or a subset for each task and so on.
  • Classrooms: each professor can create several within the organization
  • Assignments: each classrooms can have multiples assignments, each one with a different team, that can or cannot intersect with others. (groups or teams of students working together in a task)

I'm new to these business (github education and classroom) but I like the way it is going, and I hope we will have more freedom to organize our stuff.

Thank you all!

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 24, 2016

Member

I've been thinking about this. What if we changed the mapping in Classroom to just be 1:1 organization with organization and within an organization in Classroom you could group assignments. Each group of assignments would be one course but all the repositories would live in one organization on GitHub.

One thing that complicates multiple classrooms in one organization is teams. You can't have two teams with the same name in two classrooms if they're both in the same GitHub organization.

A way around that would be to have a top level organization that has teams and let teachers group assignments. In Classroom you would have one organization for all of your courses, but you could look at each course independently even though some things are shared amongst the courses (like teams).

Member

johndbritton commented May 24, 2016

I've been thinking about this. What if we changed the mapping in Classroom to just be 1:1 organization with organization and within an organization in Classroom you could group assignments. Each group of assignments would be one course but all the repositories would live in one organization on GitHub.

One thing that complicates multiple classrooms in one organization is teams. You can't have two teams with the same name in two classrooms if they're both in the same GitHub organization.

A way around that would be to have a top level organization that has teams and let teachers group assignments. In Classroom you would have one organization for all of your courses, but you could look at each course independently even though some things are shared amongst the courses (like teams).

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 24, 2016

Member

@tarebyte what do you think about this?

Member

johndbritton commented May 24, 2016

@tarebyte what do you think about this?

@drbeco

This comment has been minimized.

Show comment
Hide comment
@drbeco

drbeco May 24, 2016

I think I see your problem with the relational database.

Suppose you set 1:1 classroom:organization. Ok, first of all, classroom will then be a "feature" of an organization. That is ok. Just change the way it is promoted and explained.

Now, if we can "group" assignments, we might have a problem with nomenclature. Maybe, if possible, we should name this groups "classrooms". Although the "Application" itself is named classroom and refers to the (now) feature, that is just technical talking. No one needs to know these details except the developers.

So if it is ok for you, we would have groups of assignments named "classrooms". This would take the burden of splitting a higher level of code.

Regarding the team, I don't see why someone needs two teams with the same name. Just name it something else. No problem here.

The only thing that needs to be compartmentalized is the assignment. The rest is just levels of hierarchy to help us organize it. And if someone is in two teams for two assignments, well, that is ok he/she can read both.

I may be missing some more important problem you are facing.

drbeco commented May 24, 2016

I think I see your problem with the relational database.

Suppose you set 1:1 classroom:organization. Ok, first of all, classroom will then be a "feature" of an organization. That is ok. Just change the way it is promoted and explained.

Now, if we can "group" assignments, we might have a problem with nomenclature. Maybe, if possible, we should name this groups "classrooms". Although the "Application" itself is named classroom and refers to the (now) feature, that is just technical talking. No one needs to know these details except the developers.

So if it is ok for you, we would have groups of assignments named "classrooms". This would take the burden of splitting a higher level of code.

Regarding the team, I don't see why someone needs two teams with the same name. Just name it something else. No problem here.

The only thing that needs to be compartmentalized is the assignment. The rest is just levels of hierarchy to help us organize it. And if someone is in two teams for two assignments, well, that is ok he/she can read both.

I may be missing some more important problem you are facing.

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 24, 2016

Member

Now, if we can "group" assignments, we might have a problem with nomenclature. Maybe, if possible, we should name this groups "classrooms". Although the "Application" itself is named classroom and refers to the (now) feature, that is just technical talking. No one needs to know these details except the developers.

Yeah, I agree with you here. This should be something that we make really simple for the end user.

The only thing that needs to be compartmentalized is the assignment.

Organization membership is another thing that will be polluted if we have multiple classrooms in one org. I don't think it's a blocker, but something that we need to think about.

This is something I think we will do, but it's likely to come after more important features like due dates, assignment submission, invitations, and team management.

Member

johndbritton commented May 24, 2016

Now, if we can "group" assignments, we might have a problem with nomenclature. Maybe, if possible, we should name this groups "classrooms". Although the "Application" itself is named classroom and refers to the (now) feature, that is just technical talking. No one needs to know these details except the developers.

Yeah, I agree with you here. This should be something that we make really simple for the end user.

The only thing that needs to be compartmentalized is the assignment.

Organization membership is another thing that will be polluted if we have multiple classrooms in one org. I don't think it's a blocker, but something that we need to think about.

This is something I think we will do, but it's likely to come after more important features like due dates, assignment submission, invitations, and team management.

@tabinks

This comment has been minimized.

Show comment
Hide comment
@tabinks

tabinks May 24, 2016

Would love to have your input on how this would work, what do you imagine the flow looking like? Can you use more than one organization per account? How do you group repositories from multiple courses in one organization?

Here is the flow I would imagine for an example course, CS101, that I teach multiple times per year:

  • I have an existing organization named "CS101"
  • I create a new "Classroom" in the web application named "Spring-2016"
  • Later to create an assignment, I go to the Classroom web app, choose my classroom and create a new assignment named "Assignment1-HelloWorld"
  • Students receive an invitation for the assignment. The assignment is automatically named "CS-101_Spring-2016_Assignent1-HelloWorld_githubStudnetUserName". The key here is the we are appending the classroom name.
  • During next quarter, I create a new classroom named "Summer-2016" and so on.

This is basically what I'm doing manually, but before the unlimited repo option, I added the step to delete previously quarter assignments (when I was near the quota).

What if we changed the mapping in Classroom to just be 1:1 organization with organization and within an organization in Classroom you could group assignments. Each group of assignments would be one course but all the repositories would live in one organization on GitHub.

This would work out. Basically, what I would rather not have to do is create multiple organizations (eg. CS101-Autum, CS101-Winter, CS101-Spring). Having all repos live under the same organization is fine, the grouping of classrooms would just be something to better help manage the GitHub Classroom.

One thing that complicates multiple classrooms in one organization is teams. You can't have two teams with the same name in two classrooms if they're both in the same GitHub organization.

Personally, my courses do not take advantage of teams as the assignments are mostly individual. I usually create a team for each course so that I can "@" the entire course in Issues. We use Issues as a class forum. This would not be an issue for us.

A way around that would be to have a top level organization that has teams and let teachers group assignments. In Classroom you would have one organization for all of your courses, but you could look at each course independently even though some things are shared amongst the courses (like teams).

This sounds good.

This is something I think we will do, but it's likely to come after more important features like due dates, assignment submission, invitations, and team management.

Just my 2 cents, but we've never really had issues with invitations or team management. They work fine as is. The due dates and assignment submission are nice thoughts, but this hasn't been an issue either. We tell students that master is their submission repo and we will grade the last repo in this branch before the deadline has passed. I've thought of making better use of git tags for this, but, in practice, this solution works fine.

tabinks commented May 24, 2016

Would love to have your input on how this would work, what do you imagine the flow looking like? Can you use more than one organization per account? How do you group repositories from multiple courses in one organization?

Here is the flow I would imagine for an example course, CS101, that I teach multiple times per year:

  • I have an existing organization named "CS101"
  • I create a new "Classroom" in the web application named "Spring-2016"
  • Later to create an assignment, I go to the Classroom web app, choose my classroom and create a new assignment named "Assignment1-HelloWorld"
  • Students receive an invitation for the assignment. The assignment is automatically named "CS-101_Spring-2016_Assignent1-HelloWorld_githubStudnetUserName". The key here is the we are appending the classroom name.
  • During next quarter, I create a new classroom named "Summer-2016" and so on.

This is basically what I'm doing manually, but before the unlimited repo option, I added the step to delete previously quarter assignments (when I was near the quota).

What if we changed the mapping in Classroom to just be 1:1 organization with organization and within an organization in Classroom you could group assignments. Each group of assignments would be one course but all the repositories would live in one organization on GitHub.

This would work out. Basically, what I would rather not have to do is create multiple organizations (eg. CS101-Autum, CS101-Winter, CS101-Spring). Having all repos live under the same organization is fine, the grouping of classrooms would just be something to better help manage the GitHub Classroom.

One thing that complicates multiple classrooms in one organization is teams. You can't have two teams with the same name in two classrooms if they're both in the same GitHub organization.

Personally, my courses do not take advantage of teams as the assignments are mostly individual. I usually create a team for each course so that I can "@" the entire course in Issues. We use Issues as a class forum. This would not be an issue for us.

A way around that would be to have a top level organization that has teams and let teachers group assignments. In Classroom you would have one organization for all of your courses, but you could look at each course independently even though some things are shared amongst the courses (like teams).

This sounds good.

This is something I think we will do, but it's likely to come after more important features like due dates, assignment submission, invitations, and team management.

Just my 2 cents, but we've never really had issues with invitations or team management. They work fine as is. The due dates and assignment submission are nice thoughts, but this hasn't been an issue either. We tell students that master is their submission repo and we will grade the last repo in this branch before the deadline has passed. I've thought of making better use of git tags for this, but, in practice, this solution works fine.

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 24, 2016

Member

Basically, what I would rather not have to do is create multiple organizations (eg. CS101-Autum, CS101-Winter, CS101-Spring). Having all repos live under the same organization is fine, the grouping of classrooms would just be something to better help manage the GitHub Classroom.

This is really good feedback. Thanks for sharing.

The due dates and assignment submission are nice thoughts, but this hasn't been an issue either. We tell students that master is their submission repo and we will grade the last repo in this branch before the deadline has passed. I've thought of making better use of git tags for this, but, in practice, this solution works fine.

Classroom works as is so long as you can enforce your rules using convention. For larger courses or with really newbie students it's hard to get them to understand how submission works. Due dates and submissions have been our most requested features.

Adding team management will let teachers self-service and fix cases where students accidentally join the wrong team. Right now there's no way to fix that short of emailing GitHub support.

Member

johndbritton commented May 24, 2016

Basically, what I would rather not have to do is create multiple organizations (eg. CS101-Autum, CS101-Winter, CS101-Spring). Having all repos live under the same organization is fine, the grouping of classrooms would just be something to better help manage the GitHub Classroom.

This is really good feedback. Thanks for sharing.

The due dates and assignment submission are nice thoughts, but this hasn't been an issue either. We tell students that master is their submission repo and we will grade the last repo in this branch before the deadline has passed. I've thought of making better use of git tags for this, but, in practice, this solution works fine.

Classroom works as is so long as you can enforce your rules using convention. For larger courses or with really newbie students it's hard to get them to understand how submission works. Due dates and submissions have been our most requested features.

Adding team management will let teachers self-service and fix cases where students accidentally join the wrong team. Right now there's no way to fix that short of emailing GitHub support.

@tabinks

This comment has been minimized.

Show comment
Hide comment
@tabinks

tabinks May 24, 2016

Another feature that may be useful would be the ability to "archive" a course. For example, once CS101-Autumn is completed, provide some way to lock the repos and potentially hide them (or provide some other visual cue that the course is over).

tabinks commented May 24, 2016

Another feature that may be useful would be the ability to "archive" a course. For example, once CS101-Autumn is completed, provide some way to lock the repos and potentially hide them (or provide some other visual cue that the course is over).

@johndbritton

This comment has been minimized.

Show comment
Hide comment
@johndbritton

johndbritton May 25, 2016

Member

the ability to "archive" a course.

@tabinks Would you be willing to open another issue for that feature request and provide some ideas / reasoning for it so that it doesn't get lost in the shuffle here?

Member

johndbritton commented May 25, 2016

the ability to "archive" a course.

@tabinks Would you be willing to open another issue for that feature request and provide some ideas / reasoning for it so that it doesn't get lost in the shuffle here?

@tabinks

This comment has been minimized.

Show comment
Hide comment
@tabinks

tabinks May 25, 2016

@johndbritton I have created a new issue #602.

tabinks commented May 25, 2016

@johndbritton I have created a new issue #602.

@zachfeldman

This comment has been minimized.

Show comment
Hide comment
@zachfeldman

zachfeldman Aug 16, 2016

This is a SUPER important feature for many schools to be able to use this platform at all. When we saw what was going on with this feature from GitHub here @nycda we were so excited! But once we realized we wouldn't be able to break up our various classes under our one organization, we were sad that we wouldn't be able to use . We'll see if we can divert the resources to hack something up but as a built-in feature, having multiple classrooms in the same org would be a lifesaver.

zachfeldman commented Aug 16, 2016

This is a SUPER important feature for many schools to be able to use this platform at all. When we saw what was going on with this feature from GitHub here @nycda we were so excited! But once we realized we wouldn't be able to break up our various classes under our one organization, we were sad that we wouldn't be able to use . We'll see if we can divert the resources to hack something up but as a built-in feature, having multiple classrooms in the same org would be a lifesaver.

@vbrh-immalle

This comment has been minimized.

Show comment
Hide comment
@vbrh-immalle

vbrh-immalle Aug 31, 2016

I was also surprised to see this was not possible. For now, I will try to seperate my two classes by using (secret) teams and see how it goes...

vbrh-immalle commented Aug 31, 2016

I was also surprised to see this was not possible. For now, I will try to seperate my two classes by using (secret) teams and see how it goes...

@dhowe

This comment has been minimized.

Show comment
Hide comment
@dhowe

dhowe commented Sep 19, 2016

+1

@csteacherd22

This comment has been minimized.

Show comment
Hide comment
@csteacherd22

csteacherd22 Nov 13, 2016

Agreed. More classrooms per organization is crucial - anything else is basically a kludge.
What is the status on this feature request?

csteacherd22 commented Nov 13, 2016

Agreed. More classrooms per organization is crucial - anything else is basically a kludge.
What is the status on this feature request?

@webdif

This comment has been minimized.

Show comment
Hide comment
@webdif

webdif Feb 7, 2017

Is there any progress on this issue? It's a critical issue for my organization. Thanks!

webdif commented Feb 7, 2017

Is there any progress on this issue? It's a critical issue for my organization. Thanks!

@tarebyte

This comment has been minimized.

Show comment
Hide comment
@tarebyte

tarebyte Feb 7, 2017

Member

@webdif unfortunately right now I just don't have the bandwidth to work on it. If anyone has the time to make it happen I'd be happy to review the work.

Member

tarebyte commented Feb 7, 2017

@webdif unfortunately right now I just don't have the bandwidth to work on it. If anyone has the time to make it happen I'd be happy to review the work.

@jaegernh

This comment has been minimized.

Show comment
Hide comment
@jaegernh

jaegernh Mar 17, 2017

I just stumbled upon this and agree with it's importance. I might take a look if I can find the time. @tarebyte

jaegernh commented Mar 17, 2017

I just stumbled upon this and agree with it's importance. I might take a look if I can find the time. @tarebyte

@KokoDoko

This comment has been minimized.

Show comment
Hide comment
@KokoDoko

KokoDoko Apr 14, 2017

Agreed. If the organisation is a school then it makes sense that there can be more than 1 classroom! It's awkward to create a new organisation for every class or every semester!

KokoDoko commented Apr 14, 2017

Agreed. If the organisation is a school then it makes sense that there can be more than 1 classroom! It's awkward to create a new organisation for every class or every semester!

@paragmantri

This comment has been minimized.

Show comment
Hide comment
@paragmantri

paragmantri May 16, 2017

Is here any update on the issue. As I see it now, there is still only one classroom per organisation.

paragmantri commented May 16, 2017

Is here any update on the issue. As I see it now, there is still only one classroom per organisation.

@nwoodthorpe

This comment has been minimized.

Show comment
Hide comment
@nwoodthorpe

nwoodthorpe May 23, 2017

Contributor

It seems a lot of people are interested in this feature. We still have some implementation details that need to be ironed out, but I'll try to prioritize solving this.

Contributor

nwoodthorpe commented May 23, 2017

It seems a lot of people are interested in this feature. We still have some implementation details that need to be ironed out, but I'll try to prioritize solving this.

@paragmantri

This comment has been minimized.

Show comment
Hide comment
@paragmantri

paragmantri May 24, 2017

Thanks @nwooodtorpe. Once you do that, I hope assignment submissions will appear under each classroom. As of now, all the student submissions appear directly under the organisation and the classroom is not in the tree. It can get very confusing to differentiate between our own repo as well as the ones submitted by students.

paragmantri commented May 24, 2017

Thanks @nwooodtorpe. Once you do that, I hope assignment submissions will appear under each classroom. As of now, all the student submissions appear directly under the organisation and the classroom is not in the tree. It can get very confusing to differentiate between our own repo as well as the ones submitted by students.

@jfiksel

This comment has been minimized.

Show comment
Hide comment
@jfiksel

jfiksel May 26, 2017

I would also like to recommend this feature. It seems like one could easily get bogged down with added a new organization for each semester. In addition, it would be nice to have generic starting code for different assignments within an organization, and then when creating new classrooms for each semester, the starter code could then be re-used very easily.

jfiksel commented May 26, 2017

I would also like to recommend this feature. It seems like one could easily get bogged down with added a new organization for each semester. In addition, it would be nice to have generic starting code for different assignments within an organization, and then when creating new classrooms for each semester, the starter code could then be re-used very easily.

@mozzadrella mozzadrella added this to Teacher: manage + assess in Classroom Roadmap Jun 26, 2017

@mozzadrella

This comment has been minimized.

Show comment
Hide comment
@mozzadrella

mozzadrella Jun 26, 2017

Contributor

@brks 👋 saw you signed up to user-test new features :) Excellent, thank you.
This feature is not part of our current theme (https://github.com/education/classroom/projects/7)
But it may be included in our next theme (~July-August)

Contributor

mozzadrella commented Jun 26, 2017

@brks 👋 saw you signed up to user-test new features :) Excellent, thank you.
This feature is not part of our current theme (https://github.com/education/classroom/projects/7)
But it may be included in our next theme (~July-August)

@c4cheats

This comment has been minimized.

Show comment
Hide comment
@c4cheats

c4cheats Aug 7, 2017

Just wanted to voice my support for this feature as well.

c4cheats commented Aug 7, 2017

Just wanted to voice my support for this feature as well.

@Garylum

This comment has been minimized.

Show comment
Hide comment
@Garylum

Garylum Aug 8, 2017

I'd also like to voice support for multiple classrooms per org as well. Another sticking point for us is the owner requirement to be able to admin a classroom. We'd like to give each instructor admin rights to their class but not have to give them owner rights to our whole organization if possible

Garylum commented Aug 8, 2017

I'd also like to voice support for multiple classrooms per org as well. Another sticking point for us is the owner requirement to be able to admin a classroom. We'd like to give each instructor admin rights to their class but not have to give them owner rights to our whole organization if possible

@mozzadrella

This comment has been minimized.

Show comment
Hide comment
@mozzadrella

mozzadrella Aug 9, 2017

Contributor

@Garylum @c4cheats thank you both for voicing your support, when we begin our next sprint this is part of the "Manage and Assess" theme we want to take on: https://github.com/education/classroom/milestone/5

Contributor

mozzadrella commented Aug 9, 2017

@Garylum @c4cheats thank you both for voicing your support, when we begin our next sprint this is part of the "Manage and Assess" theme we want to take on: https://github.com/education/classroom/milestone/5

@msraunak

This comment has been minimized.

Show comment
Hide comment
@msraunak

msraunak Aug 29, 2017

I would like to also voice my support for multiple classrooms per organization. I will be teaching three different courses this Fall and I plan to use Github classroom in all three courses. It will be a whole lot more convenient to have all three classes under one organization.

msraunak commented Aug 29, 2017

I would like to also voice my support for multiple classrooms per organization. I will be teaching three different courses this Fall and I plan to use Github classroom in all three courses. It will be a whole lot more convenient to have all three classes under one organization.

@readoc

This comment has been minimized.

Show comment
Hide comment
@readoc

readoc Aug 31, 2017

I'm all for this as well. I would rather keep all classes under one organization if possible. So, +1

readoc commented Aug 31, 2017

I'm all for this as well. I would rather keep all classes under one organization if possible. So, +1

@Badlapje

This comment has been minimized.

Show comment
Hide comment
@Badlapje

Badlapje Sep 1, 2017

I definitely support this.

From a UX point of view, i find the current structure to be very unclear, as you're using the term organization to mean course. From an administrative point of view, you've created quite a bit of overhead. Right now i need to create an organization not only for each course, but also for each class in that course. I teach 10 courses / year. If i want to put all of them on github classes, i'll have to send in 10 tickets / year + create 10 organizations + create 10 classrooms. And the year after that i can start again. My collegues will have to do the same, so you will end up with 60 tickets / year, from one department in my school.

The flow as i see it would be this:

  1. create one organization. An organization i imagine as being one of two things:
    a. a school / university / college / educational organization. Eg. University of Stanford
    b. a department from a school / university / college / educational organization. Eg. Stanford ACS
  2. add a new structure: course. Eg. CS101. A course can have a repo tied to it that can be used to initialize specific classrooms with a coupy of that code. That would easily allow us to instantiate new classrooms and keep the code that's the base for it seperate. It means we can refine the course immediately with feedback from students so the next iteration is better.
  3. within a course one can create as many classrooms as needed. Eg. CS101-Fall-2017

As for admin rights: you'd ideally have 3 levels: admin of an organization, admin of a course and admin of a classroom.

Compare this with the current flow you'd reduce to overhead for my school from 60 tickets / year to just a single 1. Once your organization is approved, it's all good and we can create the courses & classrooms we need. Easy and done.

Badlapje commented Sep 1, 2017

I definitely support this.

From a UX point of view, i find the current structure to be very unclear, as you're using the term organization to mean course. From an administrative point of view, you've created quite a bit of overhead. Right now i need to create an organization not only for each course, but also for each class in that course. I teach 10 courses / year. If i want to put all of them on github classes, i'll have to send in 10 tickets / year + create 10 organizations + create 10 classrooms. And the year after that i can start again. My collegues will have to do the same, so you will end up with 60 tickets / year, from one department in my school.

The flow as i see it would be this:

  1. create one organization. An organization i imagine as being one of two things:
    a. a school / university / college / educational organization. Eg. University of Stanford
    b. a department from a school / university / college / educational organization. Eg. Stanford ACS
  2. add a new structure: course. Eg. CS101. A course can have a repo tied to it that can be used to initialize specific classrooms with a coupy of that code. That would easily allow us to instantiate new classrooms and keep the code that's the base for it seperate. It means we can refine the course immediately with feedback from students so the next iteration is better.
  3. within a course one can create as many classrooms as needed. Eg. CS101-Fall-2017

As for admin rights: you'd ideally have 3 levels: admin of an organization, admin of a course and admin of a classroom.

Compare this with the current flow you'd reduce to overhead for my school from 60 tickets / year to just a single 1. Once your organization is approved, it's all good and we can create the courses & classrooms we need. Easy and done.

@Badlapje

This comment has been minimized.

Show comment
Hide comment
@Badlapje

Badlapje Sep 1, 2017

@tarebyte you mention we can help with the implementation of this feature. I would be very happy to help with that. And we can likely assign one or more of our student projects to this as well. I'll look in to it.

Badlapje commented Sep 1, 2017

@tarebyte you mention we can help with the implementation of this feature. I would be very happy to help with that. And we can likely assign one or more of our student projects to this as well. I'll look in to it.

@JamesSaxon

This comment has been minimized.

Show comment
Hide comment
@JamesSaxon

JamesSaxon Sep 14, 2017

I would also appreciate the ability to have multiple classrooms per organization. It is the same class I'm teaching last year, so many of the resources are the same but many have also evolved. The assignments are not all the same.

Having multiple classrooms would allow the course to evolve over time in a natural way.

Moreover, I think this is an important part of the GitHub education philosophy -- namely, supporting students to build up a code history. If I delete old assignments, it will delete the old students' work:

This will permanently delete the hw-XXX assignment from GitHub Classroom. In addition this will also delete 57 participant repositories under the YY-ZZ organization.

On the other hand, not deleting would confuse current students over old assignments in the classroom.

I strongly support the "archive" feature for finished classes. It's even important, in case someone ends up asking/complaining about some grade way late...

JamesSaxon commented Sep 14, 2017

I would also appreciate the ability to have multiple classrooms per organization. It is the same class I'm teaching last year, so many of the resources are the same but many have also evolved. The assignments are not all the same.

Having multiple classrooms would allow the course to evolve over time in a natural way.

Moreover, I think this is an important part of the GitHub education philosophy -- namely, supporting students to build up a code history. If I delete old assignments, it will delete the old students' work:

This will permanently delete the hw-XXX assignment from GitHub Classroom. In addition this will also delete 57 participant repositories under the YY-ZZ organization.

On the other hand, not deleting would confuse current students over old assignments in the classroom.

I strongly support the "archive" feature for finished classes. It's even important, in case someone ends up asking/complaining about some grade way late...

@jfiksel

This comment has been minimized.

Show comment
Hide comment
@jfiksel

jfiksel Sep 14, 2017

I also want to add my support of @Badlapje 's vision of GitHub Classroom organization.

jfiksel commented Sep 14, 2017

I also want to add my support of @Badlapje 's vision of GitHub Classroom organization.

@wschilling

This comment has been minimized.

Show comment
Hide comment
@wschilling

wschilling Nov 22, 2017

I'm curios as to the status of this change. For accreditation purposes, it would be much easier if I could have a second classroom now for a second set of courses, as I am tag teaching with different people now. But, I'd rather not have to have another organization, as really, only the class is different. Any updates on this one?

wschilling commented Nov 22, 2017

I'm curios as to the status of this change. For accreditation purposes, it would be much easier if I could have a second classroom now for a second set of courses, as I am tag teaching with different people now. But, I'd rather not have to have another organization, as really, only the class is different. Any updates on this one?

@dcoreyrasm

This comment has been minimized.

Show comment
Hide comment
@dcoreyrasm

dcoreyrasm Jan 31, 2018

Just curious if there have been any updates on this? I'm currently writing a course and without the ability to add multiple classrooms with unlimited private repositories, it looks like I'll have to advise faculty to create their own accounts & organizations, then create a classroom...which I really wish would allow the unlimited private repositories without submitting a new request. (or am I wrong about this? Please let me know. I'm trying to streamline the process as much as I can without faculty having to create new organizations.)

My vision is similar to previous posts...
1 CIS department org, for example
with multiple classrooms which I would name using our course numbers and terms

dcoreyrasm commented Jan 31, 2018

Just curious if there have been any updates on this? I'm currently writing a course and without the ability to add multiple classrooms with unlimited private repositories, it looks like I'll have to advise faculty to create their own accounts & organizations, then create a classroom...which I really wish would allow the unlimited private repositories without submitting a new request. (or am I wrong about this? Please let me know. I'm trying to streamline the process as much as I can without faculty having to create new organizations.)

My vision is similar to previous posts...
1 CIS department org, for example
with multiple classrooms which I would name using our course numbers and terms

@itggot-daniel-berg

This comment has been minimized.

Show comment
Hide comment
@itggot-daniel-berg

itggot-daniel-berg Feb 27, 2018

Hope this gets enabled soon. Would really, really simplify using Github Classroom for my different courses.

itggot-daniel-berg commented Feb 27, 2018

Hope this gets enabled soon. Would really, really simplify using Github Classroom for my different courses.

@alhvi

This comment has been minimized.

Show comment
Hide comment
@alhvi

alhvi Apr 10, 2018

I'm also interested on this feature

alhvi commented Apr 10, 2018

I'm also interested on this feature

@diegoep

This comment has been minimized.

Show comment
Hide comment
@diegoep

diegoep commented May 21, 2018

+1

@shivagoud

This comment has been minimized.

Show comment
Hide comment
@shivagoud

shivagoud Jun 25, 2018

I'd also like to voice support for multiple classrooms per org as well. I am an educator. I have been using classroom in a different way than intended.

  • 1 organization and associated classroom has all the assignments.
  • All assignments are group assignments
  • Everytime a new batch of students join the course, I create a new team for them in the existing assignment.
  • Each submission has to be in a unique directory so that all the submissions are merged.
  • The last commit on the master branch is accepted as the submission.

Mine is an open organization where we allow each other to see and review the code. So there's no issues so far. But when I want to hide the assignment submissions from each other, then it is not possible with the current structure.

shivagoud commented Jun 25, 2018

I'd also like to voice support for multiple classrooms per org as well. I am an educator. I have been using classroom in a different way than intended.

  • 1 organization and associated classroom has all the assignments.
  • All assignments are group assignments
  • Everytime a new batch of students join the course, I create a new team for them in the existing assignment.
  • Each submission has to be in a unique directory so that all the submissions are merged.
  • The last commit on the master branch is accepted as the submission.

Mine is an open organization where we allow each other to see and review the code. So there's no issues so far. But when I want to hide the assignment submissions from each other, then it is not possible with the current structure.

@mverdicchio

This comment has been minimized.

Show comment
Hide comment
@mverdicchio

mverdicchio Jul 9, 2018

Jumping on the bandwagon! Please create this feature!

mverdicchio commented Jul 9, 2018

Jumping on the bandwagon! Please create this feature!

@lwasser

This comment has been minimized.

Show comment
Hide comment
@lwasser

lwasser Jul 31, 2018

me too! i manage many classes and having many organizations will become very tedious. quickly

lwasser commented Jul 31, 2018

me too! i manage many classes and having many organizations will become very tedious. quickly

@ejgutierrez74

This comment has been minimized.

Show comment
Hide comment
@ejgutierrez74

ejgutierrez74 Sep 6, 2018

+1 I also want to add my support of @Badlapje 's vision of GitHub Classroom organization.
Is there any updates/news improvements in this request ?

ejgutierrez74 commented Sep 6, 2018

+1 I also want to add my support of @Badlapje 's vision of GitHub Classroom organization.
Is there any updates/news improvements in this request ?

@Magistern

This comment has been minimized.

Show comment
Hide comment
@Magistern

Magistern Sep 12, 2018

I just want to add my voice to this matter. We have ben using GitLab on a self hosted server before and there you organize your "classes" using projects.

I second the idea of having 1 organization (the school)
...having multiple teams/departments/subjects/professors
...having multiple classrooms
...having multiple annual versions.
...having multiple assignments.

That way, We would have the organization

  • Jönköping University
    • Eve
    • Phil
    • John
      • 2017
        • Client-side programming 17
          • Lab 1
          • Lab 2
          • Lab 3
        • Server-side programming 17
          • Lab 1
          • Lab 2
          • Group Project Assignment
      • 2018
        • Client-side programming 18
          • Lab 1
          • Lab 2
          • Lab 3

I guess everything would be easily solvable with the addition of Custom Hierarchical Taxonomies
You could name them whatever you like (school/class/professor etc) and create your own parent-child relationship. Then all you have to do is categorize each assignment using those taxonomies.
Visually it could look like folders for instance.

Magistern commented Sep 12, 2018

I just want to add my voice to this matter. We have ben using GitLab on a self hosted server before and there you organize your "classes" using projects.

I second the idea of having 1 organization (the school)
...having multiple teams/departments/subjects/professors
...having multiple classrooms
...having multiple annual versions.
...having multiple assignments.

That way, We would have the organization

  • Jönköping University
    • Eve
    • Phil
    • John
      • 2017
        • Client-side programming 17
          • Lab 1
          • Lab 2
          • Lab 3
        • Server-side programming 17
          • Lab 1
          • Lab 2
          • Group Project Assignment
      • 2018
        • Client-side programming 18
          • Lab 1
          • Lab 2
          • Lab 3

I guess everything would be easily solvable with the addition of Custom Hierarchical Taxonomies
You could name them whatever you like (school/class/professor etc) and create your own parent-child relationship. Then all you have to do is categorize each assignment using those taxonomies.
Visually it could look like folders for instance.

@ejgutierrez74

This comment has been minimized.

Show comment
Hide comment
@ejgutierrez74

ejgutierrez74 Sep 12, 2018

I think it would be clearer:

Jönköping University ( organization)

  Client-side programming 17 ( subject with year or course 18/19)
      Optionally this course/subject could have one or many classrooms ( ex: one in the mornings, one in the afternoon). Perhaps a university course with 200 students, could be divided in 4 clasrooms with 50 students each and with teachers assgined to each classroom. So classroom1 would have Ann and Peter as teachers, classroom2 with Joseph and classroom3 Teddy and Vanessa, classroom4 Eugene, Brad and Angeline. Every classroom has different students.
           Classroom 1 : ( has its own teachers, students and deadlines to each assignment)
                 Lab 1 ( assginement1)
                 Lab 2 ( assginement2)
                 Lab 3 ( assginement3)
           Classroom 2 : ( has its own teachers, students and deadlines to each assignment)
                 Lab 1 ( assginement1)
                 Lab 2 ( assginement2)

.....
Classroom 4 : ( has its own teachers, students and deadlines to each assignment)
Lab 1 ( assginement1)
Lab 2 ( assginement2)
Lab 3 ( assginement3)
Lab 4 ( assginement4)

     Server-side programming 17
            ....
      Client-side programming 18

My approach i think is clearer because in one organization the course is done every year or semester, and teachers can move to another organization, or have different courses/subjects from one year to another. Persons change course remains..

ejgutierrez74 commented Sep 12, 2018

I think it would be clearer:

Jönköping University ( organization)

  Client-side programming 17 ( subject with year or course 18/19)
      Optionally this course/subject could have one or many classrooms ( ex: one in the mornings, one in the afternoon). Perhaps a university course with 200 students, could be divided in 4 clasrooms with 50 students each and with teachers assgined to each classroom. So classroom1 would have Ann and Peter as teachers, classroom2 with Joseph and classroom3 Teddy and Vanessa, classroom4 Eugene, Brad and Angeline. Every classroom has different students.
           Classroom 1 : ( has its own teachers, students and deadlines to each assignment)
                 Lab 1 ( assginement1)
                 Lab 2 ( assginement2)
                 Lab 3 ( assginement3)
           Classroom 2 : ( has its own teachers, students and deadlines to each assignment)
                 Lab 1 ( assginement1)
                 Lab 2 ( assginement2)

.....
Classroom 4 : ( has its own teachers, students and deadlines to each assignment)
Lab 1 ( assginement1)
Lab 2 ( assginement2)
Lab 3 ( assginement3)
Lab 4 ( assginement4)

     Server-side programming 17
            ....
      Client-side programming 18

My approach i think is clearer because in one organization the course is done every year or semester, and teachers can move to another organization, or have different courses/subjects from one year to another. Persons change course remains..

@Magistern

This comment has been minimized.

Show comment
Hide comment
@Magistern

Magistern Sep 12, 2018

Magistern commented Sep 12, 2018

@jfiksel

This comment has been minimized.

Show comment
Hide comment
@jfiksel

jfiksel Sep 13, 2018

I agree with Johan here, this seems like a reasonable way to organize this. The way we've been getting around this is by having a master organization (described here) for a given class that has all of the base assignments, and then re-using or adding to these assignments for each new class (organization). So in addition to what Johan has suggested, it would be nice if we could easily re-use materials (starter repos & lecture repos, if that exists) from class-to-class without also importing all the student homework repos

jfiksel commented Sep 13, 2018

I agree with Johan here, this seems like a reasonable way to organize this. The way we've been getting around this is by having a master organization (described here) for a given class that has all of the base assignments, and then re-using or adding to these assignments for each new class (organization). So in addition to what Johan has suggested, it would be nice if we could easily re-use materials (starter repos & lecture repos, if that exists) from class-to-class without also importing all the student homework repos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment