

Use git+github in the classroom - lfborjas
https://github.com/edu

======
lfborjas
I used this last year, they gave me an org and private repos for the student
projects without any fuzz, it was really cool to teach a course with that and
we open sourced the projects afterwards (it's in spanish, though) :
<https://github.com/progra4>

I'll definitely use it again, the students learned a lot about project
management and distributed version control systems, which is something that
isn't being taught as it should, at least not where I went to college.

~~~
joelhaasnoot
Sounds great! Assembla used to do this, but this seems a great way to learn
Git. Students need to learn to understand SVN, some just don't get it. Git is
a step on top of that, but very important to learn. Some colleges do teach
project management by just doing it: I spent a quarter of my 4 years doing
full-time projects.

------
spacemanaki
I would love to hear that there are CS/EE programs using version control to
catch cheating. It seems to me that if you forced students to "show their
work" by having them commit to their project repo in small increments, it
would obviate (some of) the hoops some depts seem to go through to prevent
cheating.

At my school, we were given programming problems a week in advance, told to
solve them and memorize the solutions, and then had to show up at a computer
lab for an "exam" where we basically typed the programs in and made sure they
compiled, etc. I believe this process was put in place after rampant cheating
was happening in more traditional "turn in your source code" types of
projects. However, this was a pretty horrid experience, and for some students
who treated them like regular exams (ie didn't actually memorize working
solutions beforehand) these exams were crushing to their grades.

I can imagine some sort of automated checker for this, examining repos for
unusual activity (one giant commit right at due date) after a project was
submitted. Of course, I've also heard that in some academic CS depts, any
version control at all is a huge deal (we were taught how to use the
integrated CVS tools in Eclipse in one afternoon by some TAs, and that was the
extent of my exposure to vc in the classroom, and this was in 2006-7), so
maybe I'm dreaming too much.

~~~
lfborjas
I tried to use this approach last semester in a course I taught and found out
that it isn't easy to get used to an SCM the first time, so regular and good
students end up doing huge and late commits, moreover, one of the worse
performing students learnt -ironically- to alter the git log to seem more
diligent than he actually was (lots of commits and files changed), and with
stuff like git rebase, a more clever cheater could never actually get caught.
So an approach strongly reliant on the SCM kinda weakens in practice(though,
as you point out, it could be used as a _secondary indicator_ or guarantee of
work). And in theory, as other commenters say, taken to extremes, one ends up
evaluating secondary things and overseeing essential things like the ability
to rationally defend the code and explain one's approach.

Nevertheless, it is feasible to set up stuff like post-commit hooks (I
actually used 'em to monitor the turn ins to an exam) to maybe submit the code
to an automated plagiarism detector like
[moss](<http://theory.stanford.edu/~aiken/moss/>), that would be cool, maybe
I'll try that out next semester.

~~~
spacemanaki
Yeah, there are definitely a lot of things I didn't think of which would make
this somewhat ineffective.

> one ends up evaluating secondary things and overseeing essential things like
> the ability to rationally defend the code and explain one's approach.

This seems to describe exactly the problem with the exams I had, which tested
more the ability to memorize a solution and regurgitate it in a test setting.
This is of course anecdotal, but I've heard of similar exams in other schools.
So I think there's a lot of room for improvement there.

------
meastham
Github just threw 20 repos my way for my students to use for class projects.
It was totally painless and I'm extremely happy.

------
krschmidt
I love version control, and I love Github, but when is the proper time to
introduce students who have never programmed before to version control?

~~~
jpitz
My gut reaction is "as early as possible."

I'd be curious to hear arguments to the contrary.

~~~
krschmidt
That'd be my gut reaction too, but that might just be because we understand
the importance of it. Attrition rates are really high in intro CS classes.
When loops still seem like a difficult concept, is version control just one
more thing too much? On the other hand, if you spend time before starting
programming just learning version control with plain English text, are you
encouraging students to drop because they're not getting to program like they
expected? And when most projects are 10 to 15 lines long and done alone, is
there an effective way to still show how version control is superior to the
undo button?

~~~
steveklabnik
I always make an analogy to video game quicksaves, personally. They usually go
'oh!' and you can see it click in their eyes.

Then again, that only works for a select audience.

------
dougws
They've been doing this less formally for a while. Last semester I sent them
an email and within a day or so had a free private repository for a school
project. It's both a great service and a smart financial move; the type of
person who is likely to request a free student repository is extremely likely
to do paid business with them in the future (i.e. after graduation).

~~~
endtime
Yeah, they did this for CS210 at Stanford last year - nice to know the process
is formalized now. Thanks GitHub!

------
Newky
This is why I love github,

I didn't realize that they have a student plan and I have applied with hope of
getting this free micro plan.

In the past about 2 months, I have started using GIT and its simply brilliant
for all types of version control whether development with other programmers or
development on my own.

------
benkant
I just sent something to them regarding this as a student. I planned on using
github this semester but I'm worried about having my code copied. I'm assuming
they provide private repos for students? I'm not sure how successful I'd be
getting professors to use github if they already have their own process. But
I'd like my code in source control even if I end up submitting the final
product some other way.

~~~
lfborjas
They do provide private repos, that's seems to be the idea of offering this
alternative to students, instead of expecting them to buy personal plans.

------
danpker
Thanks for posting this, I've been paying for the micro plan for a few months
for my projects. I had no idea students could apply for a free plan.

------
danest
Thanks for this, I just applied and told one of my professors so that we can
use this for our semester long project with 20 other students.

