AI-powered Tools Policy for CS 111
Intentionally breaking this policy is considered a violation of Wellesley’s Honor Code.
Policy Points
-
Submitting code created by or with the help of AI-powered tools (see below what is included under such tools) is considered equivalent to consulting a student who took CS 111 in prior semesters or any other CS knowledgeable person. Given that such consultations are prohibited, the use of AI-powered tools for learning and completing any type of assignments is also prohibited. Read below our longer rationale for this decision. There is one exception to this policy, read item 2 below to learn more.
-
AI-powered tools, especially those in the category of “generative AI”, are some of the most powerful and sophisticated tools that computer scientists have built to date. Furthermore, there is much excitement about them in the general public as well as hype in the media. We want you to be well-informed about the potential of such technologies. Therefore, we have modified our course in two ways:
- Some of our weekly readings will be about generative AI, in the context of one of the big ideas of this course: interdependence. These readings will be part of our Connections Topics module. We want you to understand the origin of these tools, how they work, and whether they are ethical or not. In class, we will be discussing these readings together on designated days.
- Toward the last third of the semester, we will assign you one project task in which you are explicitly asked to engage with one of the new AI chatbots, to test their powers and limitations in the context of programming. In addition to the task, you will reflect about this experience.
-
Throughout the semester, we will use tools that automatically analyze your submitted code to check for signs of AI-generated code.
-
The first time we detect what we think is AI-generated code in one of your submissions, one of the instructors will have a conversation with you about this code to remind you about our AI-generated code policy and the rationale behind it.
- If we detect what we think is AI-generated code after the initial conversation described above, one of the instructors will have a conversation with you about this code. . If we believe that part of the code was generated with the help of an AI-powered tool, we will file an Honor Code charge agains you.
-
Rationale for our policy
Some of the most powerful AI-powered tools, such as ChatGPT, have been developed only recently (and change constantly). We know from extensive news reporting that they are prone to hallucinations. Initial research in adopting such tools for programming has indicated that novice learners might be more harmed rather than benefit from using them, since these learners don’t know yet enough about programming to detect such AI hallucinations. We will be reading some of this research during the semester, including testimonials from prior CS 111 students who participated in one such research study. (This study was published at the CHI 2024 conference, co-authored by CS faculty member, Carolyn Anderson.) Meanwhile, the initial research evidence is mixed about how useful these tools are to experienced programmers. Advanced CS courses might have different policies about the use of such tools in the classroom.
Any new technology is initially very attractive. The immediate benefit might be the first thing we notice about them. However, some of the harms are often invisible for a while. As an example, social media companies (Facebook, Twitter, etc.) were initially heralded for the benefits of their products (connecting people to one another, providing real-time news, etc.). But over the many years that we have been using them, we have identified the potential harms they are inflicting on the society at large, such as spreading conspiracy theories and disinformation, inciting hate and toxicity, and affecting the mental health of children and youth. On the latter point, the US Surgeon General issued a strong advisory in 2023. We believe that the use of powerful technology in education should follow the lead of medicine’s practice of informed consent.
Additionally, there are serious ethical issues with using AI tools that should not be ignored.
Before trying any new technology that we don’t understand yet, we should learn as much as possible about its benefits and risks and only use it very cautiously, until the evidence shows that the benefits outweigh the risks.
List of AI-Powered Tools
-
Generative AI tools - these are tools such as ChatGPT, Copilot, or DALL-E2. They are capable of generating text or images on demand, including code. Many of these tools have web interfaces in which a user can enter a prompt and get a response about any topic. When asked for help with a programming problem, they often generate a code solution. There is a long list of these tools. Another name for the text-based ones is LLMs (large language models).
-
AI-assistants embedded in IDEs - an IDE is an integrated development environment that is used for programming, Thonny (that you will be using in this class) is an example of an IDE. Jupyter notebooks are also an example of IDEs. Several other IDEs already have embedded AI-assistants. We ask that you only use the IDEs that we have asked you: Thonny and Jupyter, without trying to add extensions that involve AI assistance.
- Search Engines - Search engines like Google and Bing have been using AI for decades. Google researchers invented the technology known as
transformers,
which now powers most LLMs and chatbots, (The acronym GPT is short for
Generative Pre-Trained Transformer.) Furthermore, many search engines now
have chatbots embedded in their operation, and asking questions may
frequently result in AI-based answers. We recognize that using search
engines to look up answers to questions is an important part of your
learning, but when these searches end up turning up code solutions or
fragments, you are not allowed to use these directly in your solutions.
- Note that many search engine results are also problematic not because of AI but because they assume people searching for programming terms already know a lot of the things that you're still just learning. See below for some suggestions of resources curated for beginners specifically.
Ethical Issues with AI-Powered Tools
Note that all large language model systems, including Claude, ChatGPT, and Github Copilot, present several serious ethical issues with their use:
- The training data for these systems is usually harvested without the consent of those who created it, and is often used despite their explicit non-consent. The companies creating these systems do so in a way that does not respect the explicit sharing parameters specified by the authors of the data going into them, even though it is possible (although more costly) to train system in a way that would respect the rights and wishes of creators.
- Training data is harvested without regard to licences. The output of a chatbot is a mix of words connected via rules learned from many examples, and sometimes, words connected in a way which exactly duplicates a single specific example. This means that these chatbots sometimes suggest code or prose that should come with a specific license, without letting the user know that it is doing so or that there is a license. For example, open-source code under a license which permits sharing but requires attribution may be suggested verbatim by a chatbot. Someone using the suggested code would be liable for license infringement if they did not include attribution, which would be difficult since they'd have no warning from the chatbot that the code was under license. This is the biggest legal reason not to use AI chatbots, especially when writing code. For this assignment, you are only sharing your code with us, the instructors, and you're doing it for educational purposes, so the "fair use" provisions of copyright apply. They would not apply if you were writing code for a job.
- Even for systems whose training data is acquired only via explicit consent (these are extremely rare and we don't know of one that's publicly available), the training data needs to be filtered. The internet is full of absolutely horrific images, stories, and other material, and to avoid these becoming part of the chatbot's output, humans must look at this material and flag it. Similar to content moderation for a big platform like YouTube, the job of reading through and flagging these horrific things is mentally draining and potentially traumatic. To put it plainly: the relative "safety" with which we can use AI chatbots is bought by the traumatization of workers who filter out the horrific stuff. Rather than compensate these workers well for their time and give them plenty of time off and mental health support, companies outsource this work to desperate people and then force them to work long hours with little support. This is the reason that we're asking you to use Claude instead of ChatGPT for this assignment: it does not use human workers to flag problematic content (although its AI-based methodology for doing so is probably much more limited than the company claims).
- Finally, despite the efforts made to prevent chatbots from echoing the most hateful and traumatizing sentiments from their datasets, these filtering tools are not perfect, and there is still the chance that these things come out. Additionally, the chatbots reflect and even amplify more accepted forms of bias in our society, and so their use perpetuates these biases. Biases such as ablism, sanism, fatmisia, and more sanitized forms of sexism and racism (such as assuming someone's gender or race based on their profession) all go unfiltered in the data cleaning process and manifest in the outputs of the AI. We think that the chances of these biases coming into play significantly in this particular assignment are low, as we've tried to focus things on purely mechanical coding. But there is no such thing as "politically neutral" code, as long as your code is going to be used by humans. Please do bring to our attention any biases that you see manifesting in the outputs you get while working on this task.
- The servers used to train and run these AI tools consume huge amounts of electricity, along with water for cooling. While they aren't exactly a leading cause of CO2 emissions, they are not making the problem better, especially when put to frivolous use. We think that the resource costs associated with students using AI for this task are an acceptable tradeoff based on the importance of the learning goals, and those goals require us to use AI rather than some other substitute. But this is yet another reason that we don't casually use AI in our day-to-day programming (in addition to the reasons above and the fact that it just isn't that helpful in a lot of circumstances, as you're about to experience).
Where to ask questions or look for help?
If you have questions about the material, which you would typically search for online, we suggest first trying the following alternatives:
- Pose the question on our Sakai Q&A forum. You can post it anonymously and your questions might be helpful to all your peers. This way, everyone benefits from your curiosity.
- Browse the materials on our website:
- A good resource for particular Python concepts is the index of our free online book, Think Python 2e. To immediately locate a term on this page, use Command+F (in MacOS) or Ctrl+F (in Windows).
- Our quick reference page has concise descriptions of the specific Python material that we'll use in this class, including usage examples for each. Again using find-in-page can help you find what you're looking for quickly.
- Attend help hours with faculty or TAs. We make a lot of hours available throughout the week, although hours near major deadlines are sometimes quite busy. Try to make it to help hours a few days before the deadline if things end up being too busy on or right before deadline days.
- Ask any of your peers who are taking CS 111 this semester with you.