Introduction to Computer Networking
In a first-day-of-class discussion, students bring up questions about the honor code, including AI use.
Course Info:
- CS144: "Introduction to Computer Networking"
- Winter 2025
- Instructor: Keith Winstein
Pedagogy:
This Computer Science course sets out detailed policies and guidelines on the honor code, which the teaching teams takes very seriously. In this class, the instructor details what types of collaboration and assistance are permitted, along with policies for unpermitted collaboration, including "using output from a code-synthesis tool (e.g., an LLM) trained on past students' solutions." The teaching team also emphasizes to students that "all submissions must represent original, independent work."
Still, students often have questions, including those involving generative AI use. On the first day of class, the instructor poses a challenge: "Can you stump the teaching team" with an honor code question?
Winstein explains the discussion that follows:
"I make time at the end of the first day for students to pose their 'stumpers' and we have a discussion as a class and hear out arguments for different answers, and then ultimately the teaching team and I try to bring the class to a consensus that we can all live with."
These questions and answers are memorialized in a document that is referred to throughout the course. Examples of questions and answers from the past several years are included below.
Honor Code "Edge Cases"
Examples from "Introduction to Computer Networking"
The following questions and answers are selections from first-day discussions over the past several years, illustrating the specificity of students' questions, as well as the opportunity that the discussion format offers for reinforcing the most important aspects of learning goals and course practices, such as transparency and full disclosure.
2023:
Q: How about using online APIs, such as ChatGPT, Bard, Claude, GitHub Copilot, etc.?
A: This is equivalent to consulting a student who took this class in a prior quarter (and has solved the assignments). Any substantial help must be credited by name (and include the prompt given to ChatGPT etc.), and please do not ask for code that solves any of the assignments.
2024:
Q: “What about ChatGPT?”
A: “Truthful disclosure in the lab writeup is the most important thing. If you ask a question of ChatGPT and it proves helpful, include YOUR exact question AND the answer somewhere in your lab writeup (maybe in an appendix is fine). Do not just say “I got help from ChatGPT.” That’s not a real citation.”
Q: “What if you just did the whole class with ChatGPT?”
A: “Keith’s main goal is that you actually learn computer networking. So if you find your use of ANY tool is becoming a crutch that prevents you from doing that, stop. In terms of academic honesty, you should treat ChatGPT as if you were paying a former student in this class for their help. So when we said ‘don’t look at any other code that solves the lab assignments,’ that includes ChatGPT (and if you do use it for something else that proves helpful, you must include the exact Q and A). Using ChatGPT to BS your English portion of the lab writeups is not okay – that’s just like paying a former student to write your stuff for you. Keith emphasizes again that TRUTHFUL DISCLOSURE is the most important thing. You are unlikely to be greatly penalized for any one-time incident you honestly described.”
Q: “Can we use GitHub Copilot?”
A: “Same rules as ChatGPT apply – I don’t really know if Copilot was trained on my lab solutions [which are obviously fantastic code] so you will need to cite it and supply the exact queries and answers in your writeup if you’re going to use assistance like this. Think of Copilot as having an employee who took my class in the past. There is a lot of disagreement about this within the class, and the teaching staff will re-evaluate this once we’ve seen the checkpoint 0 and 1 submissions to see what kind of help people are getting (and definitely CITING with Qs and As) from AI tools.”
2025:
Q: It says “if the LLM is trained on previous work by students for this class.” What if it’s not really about fill out this entire assignment, but, can I have some help on C++ syntax?
A: Asking an LLM is like asking a student whom you KNOW took this class in a past quarter. If you want to ask (human or LLM), you need to credit them in your lab writeup AND describe (truthfully) the actual question you asked them and the answer and degree of help that was provided. With disclosure (if truthful and complete) you are unlikely to get in any real trouble.
Q: Are there any questions that you would be able to ask an LLM or former student?
A: If you feel comfortable posting the question publicly on Ed [a discussion forum used in the course] and letting everybody see the answer (whether from a current student, former student, or LLM), I think we’ll let you know if we think it crosses the line. Disclosure (and being public to all) is really what we’re hoping for here.
Q: Can you ask an LLM to help you debug your code?
A: As long as you don’t put ANY code into the LLM (or friend, or Ed post), and as long as you fully and truthfully disclose the entire exchange in your writeup (or have it be on Ed posted for all to see), that’s probably fine. We’ll let you know if it crosses a line – but disclosure (truthful and complete) is requisite.