teachers icon indicating copy to clipboard operation
teachers copied to clipboard

Differences from regular github?

Open JoshCheek opened this issue 8 years ago • 10 comments

Hi, I'm reading https://education.github.com/ and having difficulty understanding how this is different from normal github.

Eg under student features, it lists "Stop emailing code" (you can already do this by giving people the url of your repo), "Never lose your work" (this is already feature of git), "Stay organized" (repos already have issues and pull requests), "Build a portfolio" (this already happens when our repos are public).

Under teacher features, it lists "Distribute starter code" (I can already say "clone this repo"), "Give students feedback" (I can already send them pull requests, or have them add me as a collaborator), "Provide automated tests" (Travis CI is already available as a webhook), "Collect assignments" they can just send me the urls of their repos.

Everything they seem to be advocating, you get with git / github, already, and you don't have to use organizations (which might be wonderful, or might just be overhead, I'm not sure -- I've never felt the need for one). So how is this different from just using git / github?

JoshCheek avatar Nov 03 '15 21:11 JoshCheek

You can get private repos under your organization. You also control the members in your organization (e.g. students), so it's a bit closer to a grading center.

cengique avatar Nov 03 '15 21:11 cengique

I thought organizations already allowed for both of these features. I'm sure you have to pay for private repos, but it appears that you have to pay for this feature (what is this called? GH Education?), as well. Though I can't find a price, and the only way to sign up appears to be https://education.github.com/discount_requests/new which also doesn't list the price or the discount.

If I didn't need private repos, would there be a difference?

JoshCheek avatar Nov 03 '15 21:11 JoshCheek

You request it and you get it for free. Not sure if there's any other difference with regular organizations - I never had one outside of Edu. Maybe someone else can comment.

cengique avatar Nov 03 '15 21:11 cengique

Yes, I'm a bit confused about this too.

I want to use GitHub for a CS class. My students have signed up for the free personal accounts already, as have I. I'd like to create 4 teams this semester, do I set up an organization, and then create for teams to which I invite the appropriate students?

More importantly, do I set up my (class) organization first, and then request that this be converted to a private repo for educational purposes?

I assume once that happens, I figure out how to set up 4 teams inside the organization and invite my students to each of the teams - they wouldn't have to do anything and could just use their regular accounts, and all the work would be private?

Thanks - I'm sure the information is somewhere, but it seems a bit scattered.

ebonakdarian avatar Jan 06 '16 14:01 ebonakdarian

Create an organization, then request an upgrade to free educational usage. You have to say how many private repositories you want (this process is only necessary if you want private repositories -- you can have as many public repositories as you want for free without educational discounting). You will tell them what organization you want upgraded. It can take a few days to a few weeks to get approved -- I've yet to figure out what causes the variance. At any time you can add the students to the organization. You can then create teams, and assign teams to each repository.

umasshokie avatar Jan 06 '16 17:01 umasshokie

@umasshokie Thanks a lot, that was very helpful.

So I can create multiple private repos inside the organization. I anticipate having 4 or 5 teams, so I would ask for that many private repos (one per team) and maybe two more private ones, one for my own private use, and one for adhoc or whole class use, does that sound like a reasonable approach? My first semester using Git and GitHub in a class - plus I'm new to both myself, so just trying to avoid any potential pitfalls, so I'm grateful for any advice.

ebonakdarian avatar Jan 06 '16 19:01 ebonakdarian

No problem! I remember how confusing it was figuring it out the first time (last January).

Are they only going to have 1 project throughout the semester? I have multiple separate projects, so I need a lot more repositories.

The way it will work is they will upgrade you to the minimum sized plan that supports your needs. So if the smallest is 1-10 repositories (just a guess, but you could probably look it up) then if you request 6 you get 10. I need a few hundred, so I end up with a few hundred extras due to how the plans are defined. I would ask for a few more than you think you need, as you may not get fast assistance if you need to ask for more later.

Another thing to consider is what happens after the course if over. I have to delete all of my students' repositories to make room for the next semester's repositories (which is a pain, by the way, when there are 450 of them). If you want your students to be able to keep the repository for a few years (say, 3), then you may want to request enough repositories for all 3 years worth of students/teams.

My first year I used a repository for class handouts, another repository for code examples, and another for general course resources. It worked fine, but I also just put those resources on Piazza this term and it worked just as well.

The main issue is that GitHub doesn't deal well with binary files. So don't expect to put anything other than plain text files in the repositories if multiple users may edit, unless you want to deal with a lot of merge headaches.

umasshokie avatar Jan 06 '16 19:01 umasshokie

Cool .. all good info. There will be one semester-long project for each of the teams, each team will be creating some software project around the Raspberry Pi platform, so only code and documentation for each team will be stored in the repos. So you have a separate repo per student and per assignment?

I will have some lab exercises to get them up to speed with Git & GitHub, but I don't anticipate they will be graded, so those could go either into their own personal public account.

This class runs every other year, so I don't plan to keep the repos around after the semester. I'll copy their final projects somewhere and then delete them. This is a test of concept, if this works well, I may try to introduce this in my other programming classes, not sure though, have to wait and figure out how this will pan out.

I have been so focused on learning Git and GitHub myself that I haven't had much time to learn about organizations and teams and the whole setup.

450 is a lot -- I think there's an API that could be used to script some of this, no? No so much an issue with the small number of repos I'll need but something to keep in mind for the future.

ebonakdarian avatar Jan 06 '16 19:01 ebonakdarian

Yes I have 1 repo per student or student team per assignment (it's CS1, so there are weekly labs done in teams, 6 individual programming assignments, and some homework).

Yes, I use the teachers_pet script to manage my repositories. It just lacks deletion functionality. But everything else is through the script, which is super handy when you are managing lots of student repositories.

Good luck!

umasshokie avatar Jan 06 '16 19:01 umasshokie

Thanks again for the various pointers, I hope I can help someone else down the line in the same way.

ebonakdarian avatar Jan 06 '16 19:01 ebonakdarian