Given past experience, we would like to lay down certain author guidelines to prevent accidental misunderstandings regarding using external sources, especially when solving lab assignments (including the final assignment). Please read them carefully.
All the solutions submitted for evaluation (i.e., to ReCodEx) or presented to the teacher (final assignment) should be written only by you. In other words, it is not OK to use the code of someone else, except for the libraries and code snippets that we explicitly give you (e.g., funshield library). It is still OK to use library-like functions that are not directly related to your solution (e.g., implementation of Mersenne Twister random generator) if you explicitly mark the piece of re-used code and cite the source properly (mind you that there is no need for that as all the functions you might need are available in Arduino IDE).
Labs are conducted in a cooperative spirit, so there is no moral issue in discussing the solution with your neighbor. However, rewriting pieces of code from your neighbor is not OK (also you have no guarantees whether such code is correct or not). Also, note that having an intensive discussion with the neighbor in the labs might disturb others so it might be better to consult your teacher instead of your classmates.
Cooperating off the lab hours is still valid on the level of discussing the concepts and the ways how to solve particular things (i.e., in the same manner as in the labs). It is our objective that you reach a certain level of understanding, if somebody helps you reach it outside the class, that is OK. It is not OK to retake any code of your fellow classmates nor have someone else write the code for you, not even if you cite the source properly. Re-writing the code using only different naming or formatting conventions is considered the same as copying the code literally.
Using AI-powered coding tools like ChatGPT or GitHub Copilot is strictly forbidden during the semester. It is true that under certain circumstances, they might help you to learn; however, the potential for misuse is too great to ignore. If you are truly to benefit from these tools in your future jobs, you must first learn the coding skills yourselves, so you could be sure which code generated by these tools is ok to use.
Furthermore, we would like to ask you not to publish your solutions anywhere (not even after the deadlines). I.e., it is not a good idea to save your code in a public GitHub repo. If you are using tools like GitHub, make your repositories private, so that only you can see them. Even if your intentions are honest, displaying solutions publicly will make our jobs more difficult next year as it will create opportunities for others to copy your code.
Bear in mind that submissions are monitored semi-automatically for similarities.
If you have any questions regarding these guidelines, ask your lab teacher or the course guarantor for clarification.