
GitHub goes to school - bencevans
https://github.com/blog/1775-github-goes-to-school
======
davexunit
I was happy to see that my university decided to self-host a Gitlab server for
CS students instead of using proprietary options like GitHub or Bitbucket. The
students that set up the server learned from the experience, the instructors
got around the problems they were having with Bitbucket's account limitations,
and the new undergrads have a great platform on which to learn Git.

I would encourage other educational institutions to do the same. Proprietary
software like GitHub is anti-educational.

~~~
Zikes
GitHub is just as anti-educational as proprietary textbooks, proprietary class
management software like Blackboard, proprietary hardware like Macs or Dells,
and proprietary software like Windows and OSX.

You're welcome to your principles, but they're not always practical.

~~~
davexunit
I think all of that stuff is easily replaceable, in the context of a CS
curriculum at the very least, if only other people cared a bit. I took one
class that required use of a proprietary circuit modeling program that I ran
via Wine, but other than that I did not have to use any proprietary software
to complete my CS coursework.

~~~
sheetjs
The difficulty with replacing proprietary hardware is that, in some cases, the
companies donate it. So you'll have a "dell lab" sponsored by Dell, and it's
hard to convince a school to say no to the free equipment and go with another
solution

------
DavidChouinard
We use GitHub to teach Harvard's CS171 [1]. Couldn't recommend it more — we
use it for the course website and for managing homework [2] (great for pushing
out homework updates). Students publish their work on GitHub and we have a
script that downloads all the student repos at the deadline.

[1] [http://cs171.org/](http://cs171.org/)

[2] Here's the first homework:
[https://github.com/CS171/HW1](https://github.com/CS171/HW1)

~~~
mbesto
Wow, I would do that homework even if it wasn't required. (can't believe I
just said that)

~~~
NamTaf
Consider getting involved in some of the edX courses.

CS169.1 and CS169.2 draw from UC Berkeley's CS169 - Software Engineering and
present a course in SaaS. They extensively use Github as the code repository
and are really cool assignments to boot.

CS188.1x covers the first half of an AI subject and whilst not using github,
certianly was really enjoyable from solving machine learning puzzles. It's in
fact probably one of my favourite courses I've done.

It's a great way to stretch your brain by either learning new skills or
revisiting old, possibly rusty ones. I try to keep doing 1 or 2 at a time.

------
zAy0LfpBZLC8mAC
Apart from proprietary software being antithetical to education - I think that
schools never ever should teach a product. It's not necessarily wrong to use
products in order to teach something, but it is bad to teach a product. Like,
using a book that you have to buy in order to learn algebra is fine (though
cheaper/more easily available education is better, of course). But teaching
MathCorp[tm] Algebra[tm] (patented by MathCorp[tm]) is not. Any knowledge that
requires you to buy a particular product from a particular vendor to make use
of is not appropriate for being taught in the classroom/for being a
requirement for a passing grade. The school has particular power to force you
to learn stuff, and that power should never be used to the advantage of a
particular private entity, especially so when that private entity bribes the
school by providing the product for free.

~~~
joncalhoun
From my viewpoint, I went to college in order to prepare me for my future. If
my future likely includes the use of a proprietary product, then I think it is
in the best interest of both the students and the school to teach that
proprietary product.

I wouldn't go to a design school that didn't teach photoshop. These days I
don't think many programmers will leave college and not use git or github at
least once in their career, so I don't see a school using it as such a
travesty.

~~~
zAy0LfpBZLC8mAC
I guess the important part is that it should not be a requirement. Offering
optional courses on products, maybe, but don't give any credits towards a
degree.

After all, why do you expect to be taught photoshop? Because it's a de-facto
monopoly! What is one of the reasons for it being a de-facto monopoly? Because
it's being taught (as a requirement) in schools! That's positive feedback
supporting that de-facto monopoly, and that's bad, as it presents a barrier to
entry of new market participants. And it's highly questionable that it is good
for the students that they get to depend on a de-facto monopoly for their
work, as that, for example, probably makes it more expensive for them to work
in the field.

For github, it's similar. Teaching git is perfectly fine, obviously, as that
is free software, so the knowledge that you gain there you can use without any
restrictions, teaching github is not, as that makes it easier for github to
gain customers, at the expense of its competitors, and makes it more expensive
for the student to become a customer at a competitor.

------
my3681
I work at a development house at the University of Alabama, and we have found
that our free GitHub micro account has been a wonderful gateway drug of sorts
for learning git. But, having just moved over from an SVN set up to an in-
house git system (RhodeCode), I would echo the others who have said that other
git tools are better for us than GitHub for teaching git.

Without a doubt, GitHub's educational accounts have been great for our
undergraduate students because they have exposed them to great open source
code and a community that is excited about development. In short, we have
found that the intangible gains have far outweighed the tangible gains of a
few private repos. Kudos to the GitHub staff for continuing I make development
and collaboration fun and easy.

------
Tehnix
Many here seem to share the sentiment that universities should host their own
solution and not use something like this. Perhaps I can provide a different
viewpoint, as a student that recently got hired in IT support at my
university.

Our current repository server is a thrown together solution that covers
git/svn/hg. It's extremely ugly, has no features besides creating and deleting
a repository and generally isn't very user friendly.

I immediately started thinking about how I could improve this area, and looked
around for various things. As probably most here, open-source and self hosting
came to mind as the first thing to look for.

I found GitLab and Gitolite and started reading a bit up on those and the pros
and cons of using each, and both compared to GitHub.

 _What I found out_

While self-hosting provides the ultimate control, there is one thing you're
entirely forgetting; maintenance. This doesn't come by itself and requires
both man hours and also the know-how to do this. The case as often is, it will
be underprioritized, you will be left with an outdated version, and that will
mean annoyances, bugs and possible new features you're missing will stack up.
And that's just the case of nothing going wrong on the server you're hosting
it in. There could potentially be data loss, server downtime, server
interruption etc.

 _So what should we do then?_

Let someone else take care of it. Throwing all these responsibilities over to
someone like GitHub, whose sole function is to drive this service allows
freeing up a lot of potentially wasted time, and also allows for the students
to be using the newest and best tool for the job.

And for the case of something like GitHub specifically, I _really_ think it's
ridiculous to complain about it being proprietary, since it is besides the
point entirely. You're teaching the students to use _git_ and to collaborate
together on projects. You're making the administrative task much easier with
the workflow they provide.

You aren't teaching your students _solely_ to use GitHub, it just removes a
lot of extra cruft and allows the students to focus on the actual subjects of
the course they are in, instead of having to wrestle with the tools they have
to use.

~~~
mscman
There's a legal issue with universities though. While the research being done
may be public, they could also involve private corporate entities, restricted
data, or patentable information. A lot of people forget that, while
universities are oftentimes public institutions, they're also very large
bureaucracies. Most of them are very sensitive to how data is handled and
published, as incorrect findings, proprietary code, and other leaks can be
very costly.

~~~
Tehnix
I think some of that can be solved with
[https://enterprise.github.com](https://enterprise.github.com) (which has an
academic discount and offers an "unlimited campus-wide student license").

I can't clearly see how much maintenance you have to deal with though, so that
might not be a viable suggestion without disregarding my original complaint.

~~~
mscman
That's a good point, there are enterprise hosted offerings. I'm just pointing
out that the sell to higher level university officials to switch off of
internal infrastructure to "cloud" offerings (yes, yes, I realize that word is
overused) can be rather difficult.

------
mcintyre1994
If you don't need specific features of Github but want a fantastic place to
keep Git stuff, Bitbucket is brilliant. Unlimited free private repositories
for up to 5 collaborators, and add+confirm any educational email address to
make that unlimited collaborators.
[http://blog.bitbucket.org/2012/08/20/bitbucket-
academic/](http://blog.bitbucket.org/2012/08/20/bitbucket-academic/)

------
martindale
Fantastic seeing this initiative by GitHub. Though I'd prefer an open source
solution that they could host themselves, this is a good step in the right
direction.

I also don't believe Git is the right tool for this problem. Educators need
something tailored much more specifically, and one that reduces the complexity
of branching and merging along the way. There's a space here.

~~~
guptaneil
I'm pretty sure this initiative is geared towards CS students/teachers looking
to host their class projects, not humanities teachers looking to host their
coursework. In that light, there is no need to reduce the complexity of
branching and merging because those are real-world skills that CS students
need to learn.

As for a VCS that helps non-technical teachers manage their content, I
absolutely agree that there is still a need for that but that's a completely
different problem space.

~~~
Fomite
There is a vast gulf between "CS students/teachers" and "humanities teachers
looking to host their coursework". Like, the entire landscape of computational
science, statistics, anything with "quantitative" in front of its name...

------
hawkharris
Tech companies that offer discounts usually cater to college students. What
about young professionals who want to continue learning?

Most students receive financial support from their parents and have ample
disposable income for products like GitHub [0,1,2]. Recent grads who want to
keep learning about technology are more in need of discounts.

I'm not discrediting GitHub's campaign — I'm happy that the company is
reaching out to students. It's just that the trend toward offering students
discounts is somewhat misguided and shortsighted.

[0] [http://news.byu.edu/archive12-apr-
payingforcollege.aspx](http://news.byu.edu/archive12-apr-
payingforcollege.aspx) [1]
[http://www.nytimes.com/2013/01/15/education/parents-
financia...](http://www.nytimes.com/2013/01/15/education/parents-financial-
support-linked-to-college-grades.html?_r=0) [2]
[http://www.usatodayeducate.com/staging/index.php/choice/who-...](http://www.usatodayeducate.com/staging/index.php/choice/who-
should-pay-for-college-parents-or-students)

~~~
chmullig
That's an incredibly classist point of view. I have plenty of friends at a top
institution that can barely afford rent and to eat after their 2 hour commute.
If they had to, sure, they'd find a way to sacrifice something to pay for
github, but it surely isn't "ample disposable income." Please look outside
your bubble.

~~~
hawkharris
I think you might have misunderstood my comment. Consider where your friends
will be _after_ they graduate.

If they're having financial trouble now, those trouble will likely be
exacerbated when they first try to enter the workforce.

I'm advocating that companies _not only_ extend financial support to students,
but offer ongoing assistance to those students as they try to start their
careers.

I think your friends - and all young professionals - could benefit from those
incentives.

------
theboss
Github, I use you for all my \LaTeX papers, programming assignments, masters
projects, whatever else. It is really helpful.

But I don't like that I can only have 5 private repos. Making my work public
could be an honor-code violation and a violation of the professors trust, that
I won't make solutions available to their projects. On top of that, I'm
usually working on more than 5 projects at any given time.

Now that I'm finishing graduate school, this pressure is especially high. If I
work on something in github, the other grad students will undoubtedly see it,
since we are all gitbuddies. Does github have any talk of raising the private
repo ceiling on education accounts from 5 to >5, or should I just remove my
work while it's done?

~~~
robszumski
You can have a private repo called writing with a folder for each project. Not
elegant but it works...

~~~
Fomite
This too. I have an "Archive" folder, and before that one called
"Dissertation" which was in reality like, 8 different projects.

~~~
theboss
This is a good solution. Have a archive private repo that everything I'm done
with goes in. Perfect.

~~~
jackowayed
I just git clone old projects into a Dropbox private folder. I can easily keep
the whole repo history even if there are multiple branches, but it doesn't
take up GitHub usage at all. Of course, if you had Issues or the like, none of
these solutions really work.

I do wish GitHub had a way to deactivate projects to save money. Maybe put it
in a read-only state, still count it against your disk quota, but you'd have
to make it active to actively work on it and update it. I feel like a lot of
systems do similar things (eg. charge per user but allow deactivating users in
case they go on leave or quit but may return--pause paying for that user
without losing the data in case you want to reinstate.)

------
susi22
Side note:

When you have 15 links in one sentence where every word is a link to somewhere
and the word actually has no meaning, then I think it's time for a bullet
list. It might just make people actually click a link. But all those links in
one sentence are of little help IMO.

~~~
tantalor
This is an annoying meme I've seen before, but I don't know what it's called.

~~~
justincormack
Overlinking in Wikipedia parlance.

------
skrebbel
Completely off topic: The GitHub Education page shows a blackboard with a
picture of a chemistry set up. Did anyone here on HN, _ever_ , do a school
project that involved a setup that looked like that? I was always jealous of
that stuff, it looks so awesome! With tubes and big spherical bowls and steam
and fire and bubbles, wow! Can I send my kids to a school that has that?

~~~
robgough
It's been a long long time, but I'm pretty sure that looks like the set up
used for alcohol titration ... which at least at my school we did in teams for
4 or so. Did you not do this? If I did it, I'd assume that it's a standard
part of the UK Curriculum (though again, that was some time ago).

A quick google appears to back me up to some degree?[1] (See "Student Activity
3")

[1]:
[http://www.scienceinschool.org/2012/issue24/wine](http://www.scienceinschool.org/2012/issue24/wine)

