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.
- Any form of cheating on exams is unacceptable. The penalty for cheating on an exam is failure in the course.
- For MPs, we allow credited collaboration with a single partner on some MPs. The MP write-ups give you detailed instructions for declaring your collaborators. Each student is still responsible for committing code to their repository for grading. You may only collaborate with students currently taking the course. Do not ask for help from your roommate who took the class last semester, or from your cousin’s best friend’s girlfriend who took the class in 2006. Do not accept assistance from students not currently enrolled in the class, even if they offer.
- You may not receive help from anyone outside of course staff and your credited MP partner for that MP. If you are struggling with an MP, course staff will help you better than your friend can, and we won’t have to talk to you about an integrity violation.
- You may not use or refer to solutions written in past semesters or found online.
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:
- Any infraction of academic integrity on an MP will result in a 0 on that MP, regardless of when we notify you.
- Any 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.
- 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.
- There are no minor infractions. Do not sign in attendance for your friends. Do not casually lay your scantron sheet face up on the table. Do not give a friend a printout of your code. Do not ask someone who took the class in a previous semester for help of any kind.