Artificial intelligence can be an extremely effective tool when used carefully and conscientiously. Students in this course are cautiouly encouraged to employ AI when it supports their learning. This document describes the policy around use of AI in CSC 370. Rules in other courses may differ from the policies given here.
When deciding whether AI use is appropriate in a given application, ask yourself what the learning goals are. If your goal is to understand how a technique works then writing the code for yourself is the best way: do not use AI. On the other hand, if your goal is to experiment and see what a technique can do in different applications, then using AI to complete the implementation may be a sensible approach. These two modes of inquiry might be used in tandem: when exploring a new topic, you may first choose to implement the basic technique on your own without AI assistance. Once you have a working understanding of the method, you might then recruit the AI to quickly apply the technique in a number of different variations to get a sense of its adaptability.
Documentation
Allowable use of AI in fulfilling any course requirement requires two pieces of documentation:
- An AI statement, describing your reasons for using AI and assessing its success. Further details appear below.
- A full transcript of the AI session(s), including both your prompts and the AI responses.
Please note that use of AI in this course without the required documentation is a potential breach of academic integrity. For clarity, projects that have been completed without the use of generative artificial intelligence should include the following statement at the end: "Generative AI was not used in the preparation of this work."
AI Statement
- Begin by stating your reasons for employing AI as a tool. As mentioned above, AI is not appropriate for all tasks, particularly if your goal is to better understand the details about how a method is implemented.
- Specify the AI tool(s) that were used.
- Conclude by assessing the effectiveness of AI on this task. Did it solve the problem correctly? How much direction was necessary? Were there any hallucinations?
Tips
If you plan to ask the AI to develop code, here are some tips for better results:
- Give the AI an appropriate persona. ("You are an expert programmer of deep learning networks...")
- Describe what you wish the AI to accomplish as thoroughly as possible. Include a detailed series of steps exactly describing the desired implementation. If appropriate for the problem at hand, consider also asking the AI to develop test cases. (This can also be done later as a separate interaction.)
- Prompt the AI to ask you questions about anything it doesn't understand, or details that you may have omitted. The ask it to rephrase your instructions as a detailed series of specifications suitable for implementation by a junior programmer. Read these over to make sure they match your intent.
- Ask the AI to implement the instructions.
- If the implementation is large, or composed of multiple separate parts, you might ask the AI to check over its work looking for inconsistencies or bugs. You can ask it to focus on a specific aspect, such as the flow of information from one function to the next, or the shape of your tensors at each stage of execution.
- Test the implementation thoroughly. Consider displaying intermediate values (if you can make sense of them) rather than just looking at the final product.
- Remember that the AI has a limited context window. If you wish to ask it to revisit something that it wrote a while ago, consider copying your current code into the prompt window so that it has a fresh reminder. (Depending on the platform you are using this may not be necessary. E.g. Gemini on Colab is integrated with the open code window.)