When I was teaching at General Assembly, I pushed to us to use Github for <i>all</i> of our assignments, workflow, etc. Homework turn-ins were pull requests, feedback was given via comments per-line that any instructor (or student) could make, etc.<p>The process to get students fluid at the basic flow took a few days, but after a while it was great and I couldn't imagine doing it any other way. Any programming course using this is obvious, but I'd even do it for non-programming things if I could get the student trained on it in a minimal amount of time.<p>The only roadblocks with git are that there's so many basic ways to screw up, which are hard to fix. Let's say a student does a `git init` in their `~/code` folder that holds all of their git projects... and then makes a bunch of commits, and then can't figure out why they can't push to github. I wish there were some better failsafes to prevent such things, but they happened by accident once a week at least.
This is a timely post, Alexey.<p>Today, we released Classroom for GitHub: <a href="https://classroom.github.com" rel="nofollow">https://classroom.github.com</a><p>Classroom for GitHub automates repository creation and access control, making it easy for teachers to distribute starter code and collect assignments on GitHub.<p>You can read more about it on our blog: <a href="https://github.com/blog/2055-teachers-manage-your-courses-with-classroom-for-github" rel="nofollow">https://github.com/blog/2055-teachers-manage-your-courses-wi...</a>
I teach a college UNIX systems programming class. This semester I decided to switch to GitHub, and so far, I can't believe I didn't do it earlier.<p>I like to write code in class, and it's great to be able to push every couple of minutes so students can follow along on their laptops if they want. Of course that's more about git itself, but the GitHub interface is good and I think that it lowers the frictional cost for both me and the students, so everybody gets a little more done.