I'll pile onto the agreement stack. Abso-100%-freaking-lutely. I worked with my friends through all our assignments, bouncing ideas off each other, talking through confusing bits, etc., and then doing the work ourselves. We didn't ask "how do you write this line of code", but "how are you approaching this problem?". I learned as much from the discussion as I did from the implementation. Throwing that out is absolute madness. No way.