Hi Hacker News!
Some fellow students and I are trying to introduce other students to git/Github and holding seminars has never really worked to get students excited and to start taking advantage of the tool and service. This year we want to try and work it into the course by having students use git to submit their projects for grading.
The problem is; we have yet to come up with a proper work flow to do this. Ideally all this could be accomplished via Github. Our school has Github Enterprise so we have some room to play around. I'm not sure how much customization we can do, I'm not really sure what all Github Enterprise provides in that are either.
My first work flow was as follows.
* Teaching Assistant posted a repo with starting code and the project description/assignment
* Students fork the repo to a private repository (I have a feeling this is not possible)
* Students work on their project individually
* When a student is ready to submit their project, they submit a Pull Request back to the Teaching Assistant.
I'm pretty sure there are a few flaws in this, one being that we want to try and keep the students work private. Forking to a private repo may not be possible, and the pull request I'm sure would not work.
I'm curious if someone has done something similar or has any ideas. I'm also willing to setup a separate server. My thinking here would be that students could use Github (private repos) to centralize their code and get familiar with github by forking the project and working from there. When it comes to submitting their project for grading they would then push the project to a separate server. I'm not entirely sure how this would work, but I figure there would be some way to allow for accepting push request and pushing them into different branches via a hook.
Thanks!
At my university we use a in-house linux mail system to submit assignments. It's not perfect or necessarily easy for new CS students but it's easy for the teachers and all assignments come from the login accounts the school manages which makes it easy to track plagiarism.
In classes we are "strongly encouraged" to use some kind of version control (svn or git) for group projects. I think anyone who has worked on a large programming group project with 3+ people through e-mail quickly sees the advantages of git, at least that was the case with me and several partners I've had as an undergrad. Keeping track of each persons code through e-mail becomes ridiculously tedious and annoying instantly and they would quickly be screaming uncle. Just a thought, but it may be better to find a way to let them come to that realization on their own as well.
regardless, goodluck with this it's an excellent idea for getting students on version control early.