There are a few simple rules that you should keep in mind for all of our coding assignments, regardless of whether they are "open" or "closed":
You should treat a closed project as though it were a take-home exam. You may ask for assistance from your instructor or any of the TAs, but you are not to discuss the implementation (HOW the code is written) with anyone else. This includes your class-mates, friends, family, etc.
Although you should always try to complete as much of an open project as you can on your own, you MAY discuss the implementation details (the "HOW") openly with anyone. However, you must write 100% of the code on your own without copying from any source. Looking directly at another student's source-code is forbidden, but on an open project you are free to discuss ideas on HOW the code is to be written.
Below are some "example scenarios" to help you understand what is okay and what is not. Imagine you are considering the following conversations with a classmate. The green checkmarks mean the conversation is OK, the red X's mean you would be violating the course policy -- these would be considered examples of academic dishonesty.
|Something you might say...||Open Project||Closed Project|
|"What does the project description mean by 'Use symbolic constants'?"|
|"Are we allowed to submit the project as many times as we want?"|
|"It says 'maintain a sorted list' -- how are we supposed to keep the list sorted?"|
|"I can't get my shape to rotate properly! Can you give me a hint on how you got that to work?"|
|"I've been working on this method for hours and I can't figure out what's wrong! Could you look at my code and help me out?"|
|"I can't figure this part out -- can I look at your code to see how you did it?"|
|"I wrote some useful tests for this project -- let me email them to you so you can use them to see if your code is working correctly."|