If you aren't sure what the collaboration policy is on a lab, program, or other assignment please ask!
Studying together is always encouraged, especially when preparing for quizzes, tests, and final exams. At other times you may be assigned to a group, e.g., for labs or group programming assignments.
On programming assignments, you may consult with professors, and TAs/UTAs about any aspect of the assignment. You may consult with other students only in a general way, e.g., about debugging or Java/language issues, or questions about wording on the assignment. You cannot actively work with someone unless the assignment specifically grants permission for you to work together with someone else in the class.
You can post questions to the course bulletin board, and we encourage you to answer questions posted by other students. Please do not provide answers that essentially give away the entire assignment.
Consult means you can discuss the programs before writing code, and get help with debugging your program, but you should write your own code. Writing one program and making multiple copies of it is NOT acceptable! For each assignment you are expected to include a list of the people with whom you have consulted (including students, TA's, tutors, professors) in the README file you submit with the assignment. You should also cite any resources other than class materials you use (e.g. webpages, notes from other courses at other universities, etc.).