CS123 Collaboration Policy and Registration Form

We believe that too strict a collaboration policy allows virtually no cooperation or discussion between students, and stifles the learning process to some extent. Consequently, CS123 has a more liberal, honor-system based policy that depends on the maturity of the students to know what work should be their own and what they can share with their peers. We stick to the Brown's basic Academic Code, interpreted as follows:

All written work must be your own.

The basic premise is that you should do your own thinking, your own design, and your own coding. You're allowed to talk to other students about the content of the lectures and of the textbook, and about high level problems and concepts. A written record should never be made. If you can come to understand a challenging concept with the assistance of a peer, then you should be able to work through it again on your own. You can answer questions from other students about packages used for assignments, as long as the problem is a technical issue and not a question that concerns the problem-solving process at large. We realize that C++ (and associated tools and concepts such as gdb and memory management) is going to be new to some of you. You are allowed to assist another student in learning to use C++ and related tools, but mailing-list-like rules apply to what you can and cannot discuss.

On a general level, what is not allowed is that you let yourself be led by another student, to the extent that your task becomes significantly less challenging because of your discussion with him or her. In conversation with other students, be sure not to venture into design and coding specifics. In particular, don't sit down with someone else before you've analyzed the problem in-depth on your own.

Specifically, you should do your own problem solving, do your own program design and decomposition, and design your own algorithms and data structures. If you are discussing what algorithms or functions you wrote to solve the problem, or describing header files or specific lines of code, then you are breaking the Non-Collaboration rule.

The most blatant violation that can occur is code-copying, and this will absolutely not be tolerated. We reserve the right to do a "wire-pull test" (i.e., ask you to explain any aspect of your program), and we will be routinely comparing your code to that of other students for undue similarity.

In order to circumvent this problem, we require that all students maintain appropriate permissions on their coursework. Other students should not be able to access, view, or copy your files. Use the 'chmod' command to set appropriate permissions. If you don't know how to do this, ask a consultant or see a TA. Alternatively, type 'man chmod' in a shell. If another student copies your work, you will be held accountable for negligence.

We believe that this policy is explicit enough to guide your judgment and that we have not left you much gray area. If you are ever in doubt about the legality of your actions, be sure to clear them with a TA, even after the event has already occurred. When we confront a student with a case of suspected violation, an answer of "I didn't know that this is wrong" will not be met with sympathy. Suspected cases of disallowed collaboration will be referred to the Deans and typically result in a directed NC on your transcript and parental notification.

Again, note that you are expected always to initially approach a problem on your own, and seriously attempt to find a solution. You are honor-bound to preserve your independence of thought. And remember that the TAs should always be your first resource when you have a question or problem.

By signing below you are bound to these terms and you are registering in CS123.

Name: ____________________________________________________________

Date: ____________________________________________________________

Signature: ____________________________________________________________

CS Login: _______________
(if you don't have one, let us know above and we'll get you one)

Grade level: ______________________

How are your C/C++ skills? Would you like to have a C++ mentor TA?