owned this note
owned this note
Published
Linked with GitHub
---
tags: Documents, spr22
---
# CSCI0200 Collaboration Policy (Spring 2022)
[TOC]
### 1 Introduction
Our goal is to help you learn introductory material in computer science. Studies show that students perform better in the long-run when their introductory CS experience is collaborative. Hence, we encourage collaboration of different forms on different assignments.
At the same time, we want to make sure that by the time you leave this course you have internalized the material yourself. Therefore, we have adopted a collaboration policy that generally encourages teamwork while establishing a few boundaries that help you make sure you understand everything you hand in.
This policy is specific to CSCI0200. Policies vary widely from course to course. If you have any questions about this policy, please raise them with the TAs or the professors. The consequences of violating this policy can be severe, inaccordance with [Brown's Academic Code policies](https://www.brown.edu/academics/college/degree/policies/academic-code).
### 2 Assignment-Specific Policies
**Labs:** Lab work will normally be done in pairs. On coding problems, you should take turns sharing your screens. Switching off every fifteen minutes works well. Although only one person is on screen at a time, both of you will be talking through the solution and making suggestions to each other, catching mistakes as small as typos and as significant as a misunderstanding of the problem specification. There are no restrictions on collaboration in labs.
**Homeworks:** You are encouraged to discuss homework assignments with other students. You may even work out solutions together at a conceptual level. However, **you are not allowed to take away any code or notes about code from these sessions**. Emails, IM conversations, screenshots, photos of whiteboards or notes and the like all constitute "notes".
We expect you to fully comprehend everything you hand in. To that end, you must write up your solutions entirely on your own. Your ability to independently implement solutions possibly developed with your classmates is proof that you understand them.
**Projects:** Barring extenuating circumstances, you are required to pair program the projects. That means you will code the project together with a partner. Note that divide-and-conquer (you code this part, I'll code that part) is not pair programming and is not acceptable. See the [Pair Programming handout](https://hackmd.io/@cs18-spring-2021/rk1u3BZk_) for further clarification. Do not hand in any code that you and your partner do not both understand fully. This is in your interest as questions about the projects may appear on the midterm and final.
During project final grading, your grader/TA may ask specific questions about your design and implementation to each of you and your partner. Saying "I didn't write that part, so I don't know" is not an acceptable answer and will cost you points. So work in a way such that both partners understand the project implementation.
When discussing projects with students other than your partner, you should follow the take-away-no-notes-or-code-from-joint-work-sessions policy that applies to homeworks. Under no conditions should you share any of your code with anyone other than your assigned project partner(s).
**Exams:** No collaboration whatsoever is allowed on exams.
You will be asked to acknowledge on each exam that your solutions are entirely your own, that you did not discuss the content of the exam with anyone other than the course instructors, and that you did not consult any sources other than the course materials.
### 3 Collaboration Around Debugging
Sometimes all programmers will get stuck trying to find a bug in their code. We know that students sometimes end up waiting in the office hours line for some time, just to track down what ends up being a simple error that they just didn't see. A collaboration policy that forbids you from ever seeing another student's code raises the time demands on everyone, often in unproductive ways.
You are permitted to assist one another in debugging code for homeworks and projects under the following conditions:
- the student who is assisting is close to done with the bulk of the coding part of the assignment (so that student will not gain significant insight into the problem by seeing someone else's code)
- the assistance given is limited to either correcting a simple error or discussing a possible conceptual confusion. The assistance should not effectively dictate significant parts of the code
- there is no statement on the assignment handout that explicitly prohibits seeing another student's code for purposes of debugging assistance
### 4 Online Materials
We are very lucky to live in an information age where people can share knowledge so easily, giving us so much knowledge at our fingertips. We want to encourage you to take advantage of the available knowledge pertinent to CSCI0200; but at the same time, our goal is to teach you to solve problems, and you cannot develop this skill if you consistently turn to others for their solutions.
#### 4.1 The Web as a Resource
The CSCI0200 website includes links to all the course lectures and assignments, as well as various supplementary documents, some of which we have written (e.g., the style guides), and some of which we have not (e.g., the Java and Python online documentation). You are free to access all materials linked to from the course website.
You are also allowed, with some restrictions, to search the web. Specifically, you can search the web to enhance your understanding of a language construct, a data structure, or an algorithm presented in class. More generally, you can search the web for answers to questions that are independent of any particular assignment.
However, you are not permitted to search the Web for any other information regarding CSCI0200 assignments. Furthermore, it is never in any way acceptable to copy or adapt solutions from an online source. For example, searching for a solution to a problem in language X, when you were asked for a solution in language Y, is indeed information regarding a CSCI0200 assignment, and cannot be consulted.
Here are some examples of search queries that abide by the CSCI0200 academic honesty policy:
* Declaring an array in Java
* What is a null-pointer exception?
* How to import library for HashMaps in Java
* What's the operator for checking list membership in Python?
Here are a few examples of search queries that do NOT abide by the course collaboration policy:
* How to implement a hash table
* What code looks like to implement a specific algorithm
* Prior homework solutions from CS16 or CS18
If you're ever in doubt about whether a certain query is acceptable, you can always ask the TAs (or even ask them your question!). There is no penalty for asking for clarification on the policy.
In the event that you inadvertently stumble upon information relevant to a solution to a problem, just close the site before reading details. If you feel you crossed the line of the policy, contact us and document your source. Depending on the extent, you might not receive credit for your solution, but a citation will protect you from being charged with violating the course collaboration policy.
Finally, as already noted, all web searching is forbidden during exams.
#### 4.2 Ed
We use Ed to provide students with an additional avenue for discussion and asking questions. However, you must take extra care when using Ed not to reveal, or hint at, the solutions to any assignments.
We encourage you to ask public clarifying questions on Ed. These questions should not reveal details of assignment solutions (including code). If you need to ask a short code question, post privately.
### 5 Protecting Your Workspace
If another student copies any of your work because you have neglected to set the appropriate file/account permissions, you will be held partly responsible. Therefore, it is important to make sure that you protect your github files or other accessible sources. Feel free to ask the TAs for help with setting permissions if you are unsure how to do this.
### 6 Policy Enforcement
The TA staff is trained to look for policy abuses and makes use of software designed to recognize similarities across programs. This software is run on all assignments and is remarkably good at detecting shared code (i.e. plagiarism). The software is also very unlikely to flag two solutions that were truly done independently as being similar (there are enough small variations in how each of us writes code). Put differently, if you are following the guidelines, writing your own code, and only occasionally asking another student for help finding a bug in your code, you are very unlikely to run into problems. Stay within the spirit of the rules (that you produced your code on your own) and you'll be fine.
Of course, if we do detect collaboration that appears to cross the line, we will address it. Penalities can range from loss of credit on the assignment (and related learning objectives) to a recommendation for a directed NC in the course. We will refer cases to the Academic Code Committee as appropriate.
Once again, if you have any questions at all about this collaboration policy, ask for clarification! Misunderstanding the policy is not an acceptable excuse for not abiding by it.
#### 6.1 Regret Clause
If you slip up and violate the collaboration policy on an assignment, you have 24 hours from when you turned it in to admit what happened to Kathi or Milda (not a TA). After 24 hours, we will engage the Academic Code Committee. This regret clause gives you an out if you cheated in desperation the night an assignment was due, or allowed someone to cheat from you, or did something else and then felt guilty about it soon after.
Egregious violations may still be sent through the normal University process even if you admit to them under this clause, at the professors' discretion.
______________________________
*Please let us know if you find any mistakes, inconsistencies, or confusing language in this or any other CSCI0200 document by filling out the [anonymous feedback form](https://docs.google.com/forms/d/e/1FAIpQLSdFzM6mpDD_1tj-vS0SMYAohPAtBZ-oZZH0-TbMKv-_Bw5HeA/viewform?usp=sf_link).*