Don't Copy Code
Please take a minute and read this document in its entirety!
Just a note to remind everyone what is OK and what is not OK in terms of talking to other project groups about this and future projects.
It is OK to:
- discuss the project or the specification in general terms (when should we return an error?)
- discuss how different library routines/system calls work (strtok() takes two arguments)
- ask the peer mentors, TAs, and professor for help
It is NOT OK to:
- use code samples for similar problems that may you find on-line
- bug someone else for a lot of help (particularly if they are already done!)
- share your code directly with other people/project groups (So, you want to know how to use strtok()? Well, here is my code and it works so you can just use/copy that.)
- post your code in a public place such as a public github repository
- describe your approach or a solution to someone else in such detail that significant portions of their resulting code look very similar to yours
Discovery of any inappropriate code sharing will lead to harsh penalties for all involved parties. This draconian policy is in place to protect the bulk of you who have put in the hard work on the project.
IMPORTANT: Take precautions so as to prevent someone from copying your code without your knowledge! How do you do this? Well, first, you have to use the "fs" command to make sure no one can snoop about your directories. Let us say you have a directory which contains project 2, called "~remzi/p2". To make sure no one else (except your project partner) can look around in there, do the following:
cd into the directory:
prompt> cd ~remzi/p2
check the current permissions for the . directory ("." is the current dir):
prompt> fs la .
make sure system:anyuser (that is, anybody at all) does not have any permissions:
prompt> fs sa . system:anyuser ""
check to make sure it all worked:
prompt> fs la . Access list for . is Normal rights: system:administrators rlidwka remzi rlidwka
As you can see from the output of the last fs la . command, only the system administrators and remzi can do anything within that directory. You can give your partner rights within the directory by using fs sa again:
prompt> fs sa . dusseau rlidwka prompt> fs la . Access list for . is Normal rights: system:administrators rlidwka remzi rlidwka dusseau rlidwka
If at any point you see the directory has permissions like this:
prompt> fs la . Access list for . is Normal rights: system:administrators rlidwka remzi rlidwka system:anyuser rl
that means that any user in the system can read (r) and list files (l) in that directory, which is probably not what you want.
If you are curious to learn more about all of this, go to this URL.
ALSO IMPORTANT: Make sure not to leave print outs on the printer! (of course, who prints their code out anyway?)
Of course, if any code sharing is discovered, harsh penalties will be applied. Now I know that most or even all of you will not do this (and I know this all sounds quite unpleasant), but I just wanted to make it clear what the guidelines are.
If you have any further questions on the gray area between what is OK and what is NOT OK, please feel free to ask.