Collaboration + AI use policy #

Note: This policy is specific to CS 1680. Please read it carefully, as some aspects may differ significantly from other courses you have taken.


By submitting any assignment in this course, you acknowledge that you have read and agree to this policy. If you have questions about the policy, please contact the instructor.

Overview #

Collaboration is an essential part of CS1680, real-world software engineering, and building network systems. Indeed, all of our modern Internet infrastructure was built collaboratively, starting with just a few people exchanging ideas (called “requests for comments” or RFCs)!

Therefore, we strongly encourage you to collaborate with others. Broadly, you are welcome to discuss approaches and solution ideas with your peers, but the work you submit must be your own – i.e., the result of your own efforts. Here’s what that means and why we’re doing it this way:

  • Collaboration is an essential part of CS 1680 and real-world networking. Talking through your work with others leads to less stress and loneliness, easier debugging, and can help you form new ideas.
  • However, collaboration can hurt your learning, too. We want every student to have worked on every assignment, and to have encountered the intellectual challenges it poses, so that you are prepared to encounter similar challenges in your future courses, job interviews, and beyond. Simply asking another person or AI agent to show you a solution and then copying it hurts your learning and constitutes academically dishonest behavior (i.e., plagiarism, as defined by Brown’s Academic Code).

In this course, we seek a middle ground where you can form productive collaborations with your classmates and use online resources, but still reason through your own code to benefit from the learning process. You may discuss this code with other students and help your friends debug, but all the work you submit must be a product of your own effort. A good way to ensure this is for you to type in your solutions individually, rather than cutting and pasting, even if you are discussing your approach with your friends or reading information from an online source or AI agent.

With this in mind, we ask that you abide by the following rules:

Core rules #

We encourage you to collaborate on all aspects of the course. You are welcome to communicate with your classmates about strategies for solutions and about specific bugs, and you are welcome to use Internet resources for general information. However:

  • You must not ask questions on outside forums (e.g., Stack Overflow, paper.camp, or any similar site). Of course, you are always welcome to search for questions online–just don’t ask questions about the assignment code yourself.
  • Outside of your project team (for group projects), you must not ask anyone else write text or code for you
  • You must not use AI tools in a way that supplants your own effort and learning on projects. See Generative AI for what this means.
  • You must acknowledge help from others. If a classmate, other collaborator, or online resource helps you, acknowledge this in your assignment submission. Name the helpers, including any AI tools used, and how they helped. (You do not need to cite help from course staff or resources directly linked from this site.)
  • You must not search for or use solutions from past (or future) years.
  • You must not post your code or solutions in a public place or make them available to current or future students. “Furnishing” your work to others is against the Brown Academic Code, which can be enforced after you complete the course.

Generative AI #

AI tools are changing how we develop software. While we want you to learn how to use AI, you must use it in a way that supports your learning, rather than replacing it. Broadly, you are welcome to consult AI tools (such as ChatGPT, Claude, Github Copilot, or others) to ask questions about course material, but you must use these tools in a way that helps you build your own answers, rather than supplanting your learning process.

For each project, we will provide an outline of the core learning goals, and will specify guidelines on how we believe AI use can be effective in supporting your learning, and where AI use is not permitted. In addition, for all assignments, you are expected to abide by the following ground rules (unless modified by the assignment’s AI policy):

  • You may not use AI agents to solve assignments for you, either using agentic coding (“vibecoding”) or by asking for code and incorporating it into your submission
  • You may use AI-based autocomplete (e.g., Copilot’s autocomplete) as you write code. However, you should not be repeatedly accepting for substantitive recommendations without verifying them. If you find yourself relying on this, you risk compromising your learning (see below).
  • You may consult AI agents to help you debug, answer conceptual questions, help you understand documentation, or generate example code. When using example code from AI, we typically recommend that you read it and write your own version–this is especially important for helping you become proficient with a new programming language!
  • You may not use AI for written components of assignments like “paper” homework problems, readmes, form responses, reflections, and so on. We ask you to provide written work when we are looking for an honest reflection of your knowledge and your experience. Submitting AI responses to these serves no purpose, and can very easily introduce text that is technically inaccurate. We try hard to respect your time by making sure the work we ask you to do is meaningful for your learning (and, in the case of reflections, to help us improve the course); please show us the same respect by writing honestly.
    • Please note that we don’t grade written work based on correct grammar, sentence structure, etc. If you are concerned you need AI to “clean up” your writing (e.g., as a non-native speaker), we encourage you use this course as a safe space to practice your writing by not using AI. If you’re concerned about this, please contact the instructor. (Fun fact: Nick used to be a writing tutor!)

Overall, when using AI, you are responsible for making sure you understand your code: you must be able to explain your code without the help of an AI assistant, and be able to answer questions about your work from the course staff. For example, our larger projects (IP, TCP, at least are graded by code review: you will need to be able to explain your design and demonstrate how your code works in order to receive credit. You can expected to be asked questions like, “What does this code do?”, “What happens if I change X?”, “Show me how you tested Y?”—simply reading your code during grading will not be sufficient. Therefore, it’s in your best interest to understand your work!

If we are concerned about your work, the instructor may ask you questions about your work to check your understanding, and may adjust grades as necessary. If you find yourself having trouble working independently of AI, this is a sign you should talk to us: please reach out to the TAs or instructors, and we can help you build skills you may be missing.

In addition, remember you are responsible for making sure your work is correct, as you would in industry: generative AI tools can provide information that is subtly or dramatically wrong. Use with caution! For example, in July 2025 we saw reports of AI deleting a development database — be careful about verifying any code or commands!

EdStem #

We use EdStem (aka, Ed) as a platform for discussion and asking questions. As a “public” (within the course) discussion forum, Ed is an excellent resource for learning, and a way to build our course community–please use it!

Public posts We encourage you to ask public clarifying questions on Ed, so long as your questions to not reveal details about assignment solutions. For example, it’s okay to ask about clarifications on assignment mechanics, high-level questions, help understanding error messages or debugging strategies, or questions about any concepts in lectures.

In general, small amounts of code can be included in public posts if it’s generic enough not to reveal solutions for an assignment. For help debugging specific errors, it’s often helpful (both to you, and anyone reading the post!) to create a generic example that demonstrates a problem (similar to posts you see on StackOverflow).

If you’re ever unsure if it’s okay to make a public post, please post privately. If we believe your post would benefit the class as a whole, we will ask if we can make it public (as an anonymous post).

Private posts Can be used for questions that might reveal your solutions, or specific issues related to grading. For sensitive matters regarding logistics, extensions, or other accommodations, please do not use EdStem and instead email the instructor directly. TAs or HTAs cannot grant extensions, and personal data related to reasons for extensions should not be present on EdStem.

Protecting your work #

You must ensure that your solutions will not be visible to other students. All assignment code is distributed using Github Classroom, which automatically gives you a private repository you can use for your work.

If you store your work elsewhere, such as a private version control repository, you must ensure your account is configured so your solutions are not publicly visible. (For example, GitHub, offers free private repositories.) Leaving course projects in a place where they are visible to other students (such as in world-readable folders on the department filesystem or public GitHub repositories) is a violation of this policy, and can result in penalties even if they are discovered after the course.

Responsible network security practices #

As we learn about network protocols, we will often study security issues and ways to break things, which provides a good case study for understand how protocols work and how they’ve evolved over time.

You are expected to use the techniques they learn in this class in a responsible manner. Some of the techniques covered in this course for educational purposes are unethical and/or illegal to use and apply in contexts beyond the course itself. Breaking into, misusing, or harming computer systems or networks is illegal and punishable by law if done without the explicit authorization of the owner. Attacking technical systems (whether owned by Brown or by others), except as specifically assigned in this course, is a violation of Brown’s Acceptable Use of IT Resources Policy and may lead to disciplinary action. The consequences of violating this policy can be severe—similar to, or greater than, a violation of the Academic Code.

If you have any questions about what kind of conduct is legal and/or ethical, please contact the instructor and/or the TA staff first.


Thanks to Malte Schwarzkopf, Tim Nelson, Kathi Fisler, and Tom Doeppner for providing advice and policy text that we have adapted for CS 1680.


Creative Commons Licence This work is licensed under a Creative Commons Attribution 4.0 International License.