Back to Course Info

Collaboration & Academic Integrity

Collaboration policy

Unless otherwise noted, all assignments are solo assignments.

However, a word of warning — 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. This will hurt you both in 225 (as you will struggle much more on the coding exam questions in the class) and also in your academic career (as 225 is a foundation for many advanced courses).

A better way to collaborate would be to 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 Piazza if I have problems?

It is almost never okay to post your code on a public post. 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 on Prairielearn 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.

Keep implementation details out of your discussions

One of the core course goals for CS 225 is to improve your ability to write code and one key aspect of this is training your ability to think creatively and produce a unique solution to open-ended problems. So while it is acceptable (and even encouraged) to talk about assignments with your peers, be aware that plagiarism can occur even if you do not directly share code!

To avoid this, consider carefully the context and intent behind the problem you are solving. In other words – what skill is the problem trying to teach you? Here are some loose examples: If you have not been given specific function headers or an assignment skeleton, it is not appropriate to give your headers to a friend (learning how to write your own functions ‘in your own style’ is important). Similarly if you made use of a helper function of your own design, you can suggest that your peer write a helper function but should not give your personal implementation. Keep in mind that there are manay ways to accomplish the same task and the goal of an assignment is not to lead everyone to the same conclusion. For example, if you think your solution is more efficient then your friends, feel free to point out where their inefficiency is (and/or offer leading questions about what alternatives might exist) but do not directly suggest your specific implementation.

Don’t share your code!

In CS 225, 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 225 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.

Thought 2: Sharing my code helps my friends!

FALSE. Completing an MP gives you only a small amount of course credit. Instead, the vast majority of course credit comes from exams that are crafted from the course assignments. If you (or your friend) does not understand 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.

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: