Some MPs will allow groups of up to 2, and others will demand independent work.

For labs and most MPs, you are allowed to work on the machine problems with at most one partner. A collaborative environment is good for learning, and especially if you and your friends are new to the material, helping each other when you get stuck can benefit all of you. (Please note, though, that each student must hand in her/his own copy of the assignment, even if it’s identical to their partner’s.) All collaboration must be credited in the partners.txt file submitted with each MP. If you work alone, you will still have to add your own NetID.

However, a word of warning — the point of the machine problems 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. In comparison to exams, the machine problems are not worth a significant percentage of your grade, so if you “cheat” on the machine problems and don’t learn the skills you need, then firstly, even a perfect score on the MP doesn’t really get you all that much credit, and secondly, your lack of practice with the ideas we are teaching will mean you will likely fail the exams, which have much greater effect on your final grade.

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.