Back to Course Info

Collaboration & Academic Integrity

Collaboration policy

Unless otherwise noted, all assignments are solo assignments.

The point of an assignment is to learn things and develop skills. Therefore, you gain nothing if all you do is copy your friend’s code and turn that in, or if you and your friend each do a different half of the assignment.

To effectively collaborate or get assistance from your peers, you should first do as much on your own as you can, but to talk things over with others when you get stuck. Discussion and asking questions is always a good thing, but using those things as a crutch and not learning the material yourself is a bad thing. So your goal should always be to do as much on your own as you can, and to ask for hints in the right direction when you are completely stuck. This approach can take a bit longer than simply “asking someone for the answer”, but on the other hand, struggling through your own mistakes until you finally solve the problem will teach you the material far better than will someone simply telling you the solution.

Can I post code on public forums if I have problems?

It is almost never okay to post your code on a public forum. If it is code unrelated to the MP for clarification purposes, or maybe just a couple lines that does not give any information about your implementation then it should be fine. A better solution for more than ~5 lines of code is to submit your code to the repository so course staff can see all of the necessary files and debug from that, then post a private question with your NetID and a description of your error/bug.

Don’t share your code!

All of the MPs are solo assignments. Each assignment has been crafted to be challenging but accessible and able to be completed. In fact, many of the data structures that are fundamental to you having a complete understanding of data structures are introduced and learned through assignments.

In some assignments, you create a sharable artifact at the end of the assignment (eg: an image). We hope you will share these. However, you should never share the source code for basic course assignments, even after the semester.

Thought 1: Interviewers want to see my CS code!

FALSE. Tech companies target UIUC because of the course work that everyone completes, allowing them to know that every student coming through UIUC is excellent. Recruiters and interviewers are not interested in code that you (and everyone else they talk to) completed as part of a regular course assignment. Instead, they are interested in projects written outside of regular coursework – which you should share! :)

If you only talk and show off your course work, you’ll be telling a interviewer something they have heard many, many times before. Note that a final project – chosen by you – is often an exception to this rule of thumb.

Thought 2: Sharing my code helps my friends!

FALSE. Copying (or allowing your friend to copy) assignments may give you the impression that you have fully ‘understood’ the solution as written. However you will likely find that such actions will only hurt your understanding the material in the long term. If you (or your friend) does not understand – and cannot produce from scratch – the code in the assignments, you (or your friend) will struggle on the exam and do far worse in the course than if you had a few small errors in your MP.

Additionally, each MP will be checked for signs of plagiarism against other students in the class. If we find your code is used by another student, the University considers both of you in violation of your academic integrity. You can read more about academic integrity here.

University policy about integrity violation

By this point in your education, we expect you’re familiar with what is and is not acceptable academic behavior.

Keep in mind that despite our fairly loose policy, we will be testing your individual understanding of the MPs via the exams.

In general we follow the CS Department policy on academic integrity, with the following notable exceptions: