Should I commit all my computer science homework assignments to GitHub?

Elliott picture Elliott · Nov 14, 2013 · Viewed 12.4k times · Source

After reading a community wiki on Quora, I decided it would be good to start experimenting with GitHub. I thought, "What a better way to experiment than with introductory computer science homework?" However this practice opens up my solutions to the web, and I am concerned that other students might plagiarize with it. I have read other questions on StackOverflow about version control and homework.

Thus, a few questions come to mind as I consider this practice:

  1. Does putting homework code on GitHub open it up to be copied?
  2. Are people that plagiarize familiar with GitHub?
  3. Should I be concerned?
  4. Would plagiarism detection software scan GitHub

Answer

Nathaniel Johnson picture Nathaniel Johnson · Nov 14, 2013

Does putting homework code on GitHub open it up to be copied?

If you create a public repository, then yes. Private repositories cost money (7$/month for 5 private repositories) though, as pointed out by carols10cents there is a free student version https://github.com/edu

Are people that plagiarize familiar with GitHub?

Open source is all about sharing. That is kind of it's point. Don't store things you want to keep private in a public place.

Should I be concerned?

For general homework no. Again, don't put essays and personal writing in a public repository. That would be similar to putting your essays on a public blog.

Would plagiarism detection software scan GitHub

I don't know. Probably, eventually.

Git can be used without github. To really learn git, you do not need github or bitbucket or any other paid service. GitHub is just a public set of servers to store/share/backup your work on.

Git is great for tracking revisions. If you have ever used Google Docs (Google Drive) and looked at it's history feature, you are probably familiar with how nice it is to be able to revisit changes and old versions of your work. Git formalizes this by allowing you to comment on your commits, branch your work into multiple versions, or just experiment without worrying about overwriting the original work.

Update

I read the Quora post and thought I might add this.

The very best thing that you can do to improve your skills is rent a server of your own from a vendor like Rackspace, Digital Ocean, or Linode to name just a few of the providers. These services can run as little as $5/month though $10-$20 a month is more typical. From there you will have to learn how to configure a Linux machine. You can install a git repository, mail servers, web servers, whatever you want, in a very low risk environment. Make a mistake and you can just reset the server to its virgin state. I recommend installing an Ubuntu distro because of its large community and relative ease of installing new software.

One of the problems with developers is that they often are too dependent on sysadmins for tasks that really should be part of their repertoire.