Collaboration Policy

Collaborating with other students is an important part of a rich and rewarding learning experience. However, Brown's academic code requires that we evaluate you based on your own work:

"Academic achievement is evaluated on the basis of work that a student produces independently. A student who obtains credit for work, words, or ideas that are not the products of his or her own effort is dishonest and in violation of Brown's Academic Code."

- The Academic Code

Our collaboration policy aims to strike a reasonable balance between appropriate collaboration and rigorous independent work. Guidelines for different parts of the course are listed below.


You are encouraged to work together with others on labs and to help each other debug them.

Projects: Algos

You are welcome to discuss the algo assignments with others. If you do discuss these with other students, you should retain no notes (paper/whiteboard, typed, photos, etc). After the discussion is over and all records of it are gone, you should then write up the solution on your own.

Please note the CS logins of each student you collaborated with next to each question.

Your solution should contain only your own work. If you're not sure what this means, consider answering a question like this about a solution in which you wrote some code: "if I changed line 3 of this code to have 2 * i instead of i, what would the output look like? Would the code still work? Would there be new error-cases to check for?" If you can't answer that kind of question, then the code isn't really yours. The same goes for formulas you derive.

Projects: Code

You are welcome to discuss the requirements of, and any high-level design strategies for, your projects. If you do discuss these with other students, you should not discuss any specifics about code, nor any pseudocode.

Please note the CS logins of each student you collaborated with in your project README.

All code you write must be your own. You should not look at, use, or otherwise refer to code written by another student (with or without their consent), nor code you found online (in a Github repository or Stack Overflow post, or from a previous offering of the course, etc).

On the opposite side of the same coin, you should not share your own code with other students (including by making it accessible on a public forum like Ed, a public online repository, or your CS home directory with insufficient permissions).

Final Project

Because the final project can be big and open-ended, there may be cases where it makes sense for you to make use of third-party software/libraries. If you think this is necessary and appropriate for your project, please check with your mentor TA. If they approve it, then be sure to cite the software/library in your final project submission.

Regarding collaboration between teams, please abide by our policy for projects above.


You are welcome to ask for help from other students (and TAs) on Ed, provided you have already tried your best to solve the problem on your own. All Ed posts asking for help in resolving an issue must include a description of the steps you have already tried to solve the problem.

In private posts, visible only to yourself and TAs, it is fine to share images, videos, and code.

In public posts, you may post images/videos of your program's output, but do not include any code (even pseudocode). This applies also to when you are responding to a public post.

Violations of this policy

We take this collaboration policy very seriously. All project code submissions will be run through MOSS, a sophisticated code similarity program designed to detect software plagiarism. Consequences for violating the collaboration policy range from receiving a zero on the assignment in question to having the case referred to the university Academic Code Committee (which can result in an NC grade for the class and a note on your transcript).