Introducing version control & git in 1.5 hours to undergraduates

Posted on Sun 20 January 2013 in misc

Our university offers a Computer Science degree, but the formal curriculum does not cover version control (or a number of other common tools and practices in software development). Students that have worked for me in part-time jobs or summer positions have said things like:

if it wasn't for that one summer I worked at the library for/with you using the version control software (which was my first real time ever using it) I'd have been really confused in my first job after graduating

That kind of statement reaffirms my belief that a Computer Science degree should include some form of introduction to software development norms--you could perhaps call it software development literacy. While I've heard the "sink or swim" argument when it comes to having a clue about what you are expected to do when you land an actual programming job (as in, "students that don't learn this on their own probably aren't going to learn it from us"), I'm sure that some minimal level of exposure to these norms and specific tools from future peers will help more students swim. As I am particularly interested in development within free software projects, I've been in close contact with the Computer Science Club to try to start providing this outside of the formal curriculum.

So, as part of this mission, a few days ago I gave a presentation to the Club on "version control", with a particular emphasis on using git. The turnout was low, alas; not a sexy subject, perhaps, or just the start of term, or perhaps I need to improve my marketing efforts. In any case, I believe it went well--heads were nodding and I had the complete attention of the participants for 1.5 hours while I built up a conceptual framework for understanding version control as practiced in git.

I'm happy to make my presentation materials available under a CC BY-SA 3.0 license; maybe you can use them and improve on them!