- AI has been developing very quickly recently
- AI text generation has developed quickly, as shown by GPT-3
- Github Copilot came out and it redefines how you code
- As it becomes more and more prevalent, professors will need to prepare for more and more students to use it to cheat for their assignments
- If students copy/paste code from the internet, you can find the exact code online and determine that they are cheating
- If the code is generated by AI, it won't be searchable because it was procedurally generated
- Is using Github Copilot cheating?
- As Copilot's website says,
- "Do I need to credit GitHub Copilot for helping me write code? No, the code you create with GitHub Copilot’s help belongs to you. While every friendly robot likes the occasional word of thanks, you are in no way obligated to credit GitHub Copilot. Just like with a compiler, the output of your use of GitHub Copilot belongs to you."
- "Who owns the code GitHub Copilot helps me write? GitHub Copilot is a tool, like a compiler or a pen. The suggestions GitHub Copilot generates, and the code you write with its help, belong to you, and you are responsible for it."
- Legally, therefore, using code from Copilot is not plagiarism
- From a legal standpoint, Copilot's developers are saying that you have the freedom to do whatever you want with Copilot's output. They view Copilot as a tool (like an IDE) and not as an assistant you must credit
- There are a few levels of autocomplete you could use as a programmer:
- None at all. Just use a plaintext editor to write all your code
- Use an editor with no autocomplete but with syntax highlighting, parentheses matching, etc.
- Use an editor with syntax highlighting and intelligent code completion (ex. IntelliSense)
- Use the previous plus snippets. Snippets are code that the editor automatically completes for you (when you type
functionname
, it can autocomplete the headerpublic static void functionname(){}
, automatic getter/setter function generators). Snippets are used to remove the monotony of rewriting the same code over and over again - Github copilot is the next level where it automatically writes entire functions/classes for you. It's like snippets on steroids
- It's up to professors to decide what sort of tools are allowed to be used on assignments and to make this policy clear to students
- Side note: is using code linting cheating?
- Code linting is different from Copilot and autocomplete because, rather than the computer writing the code for you, linters simply check your code after you've written it yourself
- Using a code linter for programming is like using a spelling/grammar checker for literature classes
- Copy a friend's code
- Copy from the internet
- Pay someone else (ex. Fiver) to do your homework for you. You're learning essential management skills, like how to delegate and the importance and value of money!
- Post on the internet and ask for help
- The problem with the first two is that the professor can use an automated tool to detect plagiarism and determine if the two programs are the same.
- While this may not be as applicable to smaller programs where there's only a small number of ways to write it, it will be more applicable to larger programs containing multiple functions, classes, etc.
- It will be up to professors to choose what tools are allowed to be used on assignments, but as tools like this become more and more prevalent, it'll be harder and harder to find out if students are doing assignments themselves or offloading them onto others
- Ultimately, as some point (determined by the next section possibly?), professors will have to rely on students' integrity that they aren't cheating
- Professors should bear in mind that Copilot and similar tools will become more and more prevalent in the workspace. Maybe this means students should be trained to use tools like this and to properly use the internet?
- If professors want to be absolutely sure that students are learning the material, they'll have to:
- know the students personally and see how familiar students seem when discussing the topics in class
- have timed tests with either locked down computers or by having students write code by hand. Any assignment that could be done on a student's personal computer has the capacity for cheating
- It will also be up to students to choose whether or not to use the tools
- While students could use tools which aren't allowed by their professors, they'll ultimately be cheating themselves of knowledge. Having a good grade doesn't mean you're qualified for a job
<insert results of experiment here>
-
Have another person write your code for you
-
Copy a friend's work
-
Copy/paste from the internet. Get the code from someone else and make minor tweaks to fit the professor's criteria
- Reddit or uncredible sources
- StackOverflow or credible sources
-
Pay someone else to do your homework for you. You're learning essential management skills, like how to delegate and the importance and value of money!
-
- Side note: is using code linting cheating?
- Code linting is different from Copilot and autocomplete because, rather than the computer writing the code for you, linters simply check your code after you've written it yourself
- Using a code linter for programming is like using a spelling/grammar checker for literature classes