Answers.Body: <p>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.</p>
  
  <h3>Lost work</h3>
  
  <p>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 <em>something</em> that can be salvaged for a hand-in, even at the last minute.</p>
  
  <h3>Reduced Plagiarism</h3>
  
  <p>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.</p>
  
  <h3>Reduced Last Minute Sprints</h3>
  
  <p>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.</p>
  
  <h3>Debugging</h3>
  
  <p>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.</p>
  
  <hr>
  
  <p>As an aside: <em>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.</em></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-01-19T17:37:30.543Z
Answers.Text: Welcome to CSEducators. We are always glad to see a new contributor.
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-01-19T20:08:37.703Z
Answers.Text: I can't emphasize enough the part about lost work.  Virtually every week, someone's laptop breaks, and all of their work gets lost.
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-01-19T16:21:47.137Z
Answers.LastActivityDate: 2018-01-19T16:21:47.137Z
Answers.UserDisplayName: Bilkokuya
Body: <p>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). </p>
  
  <p>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).</p>
  
  <p>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 <strong>do</strong> attempt to teach about vcs, some students might be confused.</p>
  
  <p>So, what advantages might teaching vcs to these students (so that they use it to organize their projects) have?</p>
  
  <p>An option is to make the lesson optional (i.e. enrichment).</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-01-17T10:48:52.287Z
Comments.Text: Maybe it would be better to spend the time on teaching them better design concepts and such.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-01-17T11:52:59.213Z
Comments.Text: @Buffy there isn't nearly enough time for that.
Comments.UserDisplayName: ItamarG3
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-01-17T19:19:32.163Z
Comments.Text: 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.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2018-01-18T02:34:20.677Z
Comments.Text: 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.
Comments.UserDisplayName: pojo-guy
Tags: <secondary-education><project><revision-control>
Title: Merits of teaching VCS as enrichment
ThreadText: # Merits of teaching VCS as enrichment
  
  (Asked by: username_0 on 2018-01-17)
  
  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).
  
  **Tags:** secondary-education, project, revision-control
  
  > **Comments:**
  > **username_1**: Maybe it would be better to spend the time on teaching them better design concepts and such.  
  > **username_0**: @username_1 there isn't nearly enough time for that.  
  > **username_2**: 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.  
  > **username_3**: 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.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_4 on 2018-01-19. Score: 5
  
  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.*
  
  > **Comments:**
  > **username_1**: Welcome to CSEducators. We are always glad to see a new contributor.  
  > **username_5**: I can't emphasize enough the part about lost work.  Virtually every week, someone's laptop breaks, and all of their work gets lost.  
  
  ---
  
  