Collaboration & Academic Integrity
Overall Policy
At this point in your academic career, you are responsible for knowing and understanding both the broader University of Illinois at Urbana-Champaign Student Code and the School of Computer Science’s Honor Code. CS 225 generally follows both of these codes with our own interpretation on sanctions:
- Any infraction of academic integrity on an MP will result in a 0 on that MP, regardless of when we notify you.
- Each individual infraction of academic integrity on an MP will result in a 100 point penalty in your final course score. Note that this is different, and slightly less severe, than the suggested departmental policy.
- Any form of cheating on exams is unacceptable. The penalty for cheating on an exam is an automatic zero on the exam and potentially an 100 point penalty.
- Any infraction will result in a loss of all extra credit points for the semester.
- Depending on the severity of the situation, multiple infractions may result in either multiple stacking 100 point penalties (in addition to zeroes on the assignments in question) or an immediate failure of the course.
Please note that every violation of academic integrity will be reported to the department and will become a part of the offending student’s permanent record, even if he/she drops the class before the violation is discovered. Note also that students with academic integrity infractions are not eligible for grade replacement.
AI Coding Tools (Generative AI) Policy
CS 225 does not permit the use of generative AI tools of any kind. The assignments in CS 225 are structured to teach you important concepts and develop skills. While you may think that using such tools is only supplemental to your learning, in practice it often teaches you far less than you realize. In a lot of ways, generative AI is akin to having access to ‘a friend’s solution’ (see below for why using your friends code is a poor idea!), except slightly worse because the resulting code may be nonsensical or the composite of multiple differing solutions.
On a more practical level, please be aware that your code is checked for plagiarism and that multiple students relying on the same tools will often produce very similar solutions. At the same time, such tools are not allowed during the exam setting, and an over-reliance on such tools can leave you struggling to code independently on exams or result in less retention of knowledge for future classes.
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. 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/Discord 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.
Code Sharing Policy: Don’t!
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.