4
$\begingroup$

Senior students in the computer science major at my school work on a project which is supposed to be relatively big (i.e. just a graphic calculator isn't enough).

I was wondering (for next year; it's too late for this year) what might be gained if we teach the students about Version Control (probably git).

Naturally, this makes the project easier to track and has all the advantages that vcs offers. But given that these students aren't taught about correct\good design concepts and such, if we do attempt to teach about vcs, some students might be confused.

So, what advantages might teaching vcs to these students (so that they use it to organize their projects) have?

An option is to make the lesson optional (i.e. enrichment).

$\endgroup$
4
  • $\begingroup$ Maybe it would be better to spend the time on teaching them better design concepts and such. $\endgroup$
    – Buffy
    Jan 17, 2018 at 10:48
  • $\begingroup$ @Buffy there isn't nearly enough time for that. $\endgroup$
    – ItamarG3
    Jan 17, 2018 at 11:52
  • $\begingroup$ Do you mean revision control (most people seem to get this terminology wrong, there are several different but related things: revision control, configuration control, source control, and version control. They are all different). I think it is a good idea, they can keep all of there files in it; not just source code. I have been using active-code from rune-stone, it have a simple revision control tool. Strictly inlier, commit on run. The pupils like it. It allows then to undo mistakes. $\endgroup$ Jan 17, 2018 at 19:19
  • $\begingroup$ IMHO, version control is best when it's invisible. GIT'S learning curve makes it less than favored, but it is widely used and many useful tools are only available via pull from github. My preferred version control is subversion. To a user it looks like a directory structure with betraying. $\endgroup$
    – pojo-guy
    Jan 18, 2018 at 2:34

1 Answer 1

5
$\begingroup$

The advantages of using VCS from a content-creation point of view are already written about in depth, so I'm providing only arguments for why this is advantageous to you - regardless of how well they utilise it for their own workflow.

Lost work

If all students are committing their work to a repository you have access to, you will never need to worry about somebody losing their USB and with it - their entire coursework. If the work is stored in the repository, you always have something that can be salvaged for a hand-in, even at the last minute.

Reduced Plagiarism

When marking a single hand-in, you potentially have no history to work from. You are seeing the cleaned up, finished product and hoping that they came to those conclusions themselves. If on the other hand you have their work, as they make it, you can more easily identify "odd" commits where the quality of code has changed dramatically - it is much harder for a student to plagiarise, and much less likely that they will try.

Reduced Last Minute Sprints

As with the reduction in plagiarism, by having continuous check-ins of their work - you are encouraging them to work on their code throughout the term. Avoiding a last-minute sprint to get the hand-in ready is ideal, and not only will this help encourage them not to do that, it gives you a tool to check they are not getting into that situation before it's too late.

Debugging

When a student approaches you with "code that doesn't work", it can be hard to identify exactly what the cause is. Even if the problem that needs solved is clear - it can be hard to see how they got themselves into that mess. With VCS you now have a tool to check back, ask for their last working commit, and see what they changed/ask them why. It may be clearer why some bad choices were made based on what they already had.


As an aside: using VCS such as git does not mean the students need to know the VCS inside out. A simple cheat-sheet of how to commit, branch and pull is all they really need; anything else can be done with your individual help when needed. Teaching proper use of a VCS is not necessarily required to get a lot of its initial benefits.

$\endgroup$
2
  • $\begingroup$ Welcome to CSEducators. We are always glad to see a new contributor. $\endgroup$
    – Buffy
    Jan 19, 2018 at 17:37
  • 2
    $\begingroup$ I can't emphasize enough the part about lost work. Virtually every week, someone's laptop breaks, and all of their work gets lost. $\endgroup$
    – Ben I.
    Jan 19, 2018 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.