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 by you. In other words it is not OK to use 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 functions you might need are available in Arduino IDE).
Labs are conducted in cooperative spirit, so there is no moral issue discussing the solution with your neighbor. However, rewriting the code of the final lab assignment letter by letter from your neighbor is not OK (also you have no guarantees it is the correct piece of code). Also note that having an intensive discussion with the neighbor in the labs might disturb others.
Cooperating off the lab hours is still valid on the level of discussing the concepts and the ways how to solve particular things. It is our objective that you reach certain level of understanding, if somebody helps you reach it outside the class, that is OK. It is not OK to retake 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.
Bear in mind that submissions are monitored semi-automatically for similarities.
If you have any questions regarding these guidelines, ask your lab teacher for clarification.