What AI-written homework usually looks like
Assignment code that came from an assistant tends to stand out against the rest of a course, not against code in general. The clearest signals are mismatches with where the class actually is:
- Techniques that have not been taught yet. A decorator, a comprehension or a library call in week three of a course that covers loops in week six.
- A more general solution than the task. The assignment asks for one function; the submission handles arbitrary input types, empty cases and a command-line interface.
- Documentation that outclasses the code. A full docstring on every function from a student whose previous work had no comments at all.
- No evidence of effort. No abandoned attempt, no debug print, no awkward variable name — and, if the course uses Git, a single commit containing the finished file.
- Style that changed overnight. Different indentation habits, naming conventions or error handling from the same student's earlier submissions.
For teachers: use it for triage, not for grading
With a stack of submissions, a checker is a reasonable way to decide which three to read carefully. It is not a basis for a grade or an accusation. Read the reasons it gives and check whether they match what you see in the file; a score with no explanation you can verify is not worth acting on. Then do the thing that actually works: ask the student to walk you through the code, explain one design choice, or make a small change while you watch. Running short walkthroughs for everyone, or for a random sample, keeps that from feeling like an accusation. Paste only code — never names or student IDs — and check your institution's rules on sending student work to outside services.
For students: what a flag does and does not mean
Clean, careful, well-commented work can score high even when you wrote every line. So can code you formatted with a tool, or code written closely from the lecture examples. A high score means your code has the texture of generated code, nothing more. The best protection is the ordinary one: commit as you go, keep your drafts, and make sure you can explain what you wrote. If your course allows AI assistance with disclosure, use it and say so — a disclosed helper function under a policy that permits it is not a problem, whatever a checker reports.
Read more
- AI code detection for teachers — policies, fair process and assignment design.
- How to tell if code was written by ChatGPT — the signals in detail.
- ChatGPT code detector and Python AI code detector — the same tool for other intents.
Frequently asked questions
Can a teacher use this as proof that a student used AI?
No, and it should never be used that way. The checker returns a probability based on style, and it can be wrong in both directions. It is useful for deciding which submissions to read more closely; the decision itself should rest on a conversation with the student and your institution's academic integrity process.
I wrote my homework myself but it was flagged. What now?
That happens, especially with short assignments, heavily formatted code, or code written closely from course material. A flag is not an accusation. Keep your drafts and commit history, and be ready to explain your approach — being able to walk through your own code is the strongest answer there is.
Is it cheating to check my own homework before submitting?
Checking your own work is not cheating in itself, but it tells you about style rather than honesty. If your course allows AI assistance with disclosure, say what you used. Rewriting AI code purely to lower a score is working around the rules rather than following them.
Should I paste a student's name or ID along with the code?
No. Paste only the code. Many institutions have rules about sending student work to third-party services, so check your course or department policy before using any online checker on submissions.
How long does a homework submission need to be?
A complete function or a file of a few dozen lines gives the most reliable reading. Very short exercises, such as a single loop or a one-line formula, do not contain enough style for any checker to judge.