I Got a Zero on a Beginner Python Assignment Because My Code Was "Too Good"
How AI paranoia in education is punishing self-taught developers — and why my sloppy code is the proof I wrote it.
I'm 18. I've been coding since I was 15. I built a 2D HTML5 game engine called Limn Engine that runs on a single JavaScript file. I co-founded a studio called Evolved Tech. I ship code every week.
Last week, I submitted a Wordle-style word puzzle for my intro Python class (CSE 110 at BYU-Pathway).
I got a zero.
The comment: "It looks like you may have gotten too much outside help on this assignment."
Let me tell you why that stings — and why it's a problem the entire industry needs to think about.
The Submission
The assignment: build a word guessing game. Secret word, hints (uppercase = correct spot, lowercase = present but wrong spot, _ = absent), guess counter, length validation. Standard Week 4 stuff.
I submitted that. Plus:
- A main menu (Play / Help / Quit)
- Random word selection from a list
- A formatted help screen with examples and a rules table
- Sound effects (
winsound) with cross-platform fallback - Loading animations (
time.sleep) - In-game navigation commands (
1= menu,2= quit) - Emoji everywhere
Every single feature works. Every feature is mine.
See python code here
The instructor flagged it anyway.
The Irony: My Code Isn't Even That Clean
Here's the thing that gets me. If an AI had written my submission, it would have been cleaner.
My code has rough edges everywhere — the kind you only get from a human typing fast and shipping without a refactor pass. Here's the actual evidence:
1. The word list was a string, not a list
words = "temple church food nephi guess moroni mosiah video correct..."
word_list = words.split(" ")
A pro (or an LLM) writes:
words = ["temple", "church", "food", "nephi", ...]
I didn't. I used a string and .split(" ") because it was faster to type.
2. I left a placeholder in the word list
words = "... abcdefghijklmnopqrstuvwxyz helaman"
That's a 26-letter "word" sitting in my list of guessable words. It's impossible to guess. I forgot to remove it.
No AI would leave that in. It would break the game on a theoretical level. But I typed the list by hand and never cleaned it up. That oversight is my signature.
3. Bare except: instead of except ImportError:
try:
import winsound
SOUND = True
except:
SOUND = False
A pro writes except ImportError:. I wrote except: because I was moving fast.
4. Inconsistent variable names
no_of_children = int(input("How many children are there? "))
no_of_adult = int(input("How many adults are there? "))
children (plural) vs adult (singular). An LLM would never do that. I did.
5. Duplicate entries in the word list
temple, altar, hymn, prayer, mercy, kindness — each appears twice. Manual typing, no dedup pass.
6. Windows-only winsound
I used winsound for sound effects — which crashes on Mac and Linux. A pro would reach for a cross-platform lib. I built for my own machine and didn't care.
Every one of those is a mark of authorship. They're not signs that I copied something — they're signs that I didn't.
The Real Problem: Competence Looks Like Cheating Now
Here's the uncomfortable truth about AI detection in 2026:
The more competent you are, the more suspicious you look.
AI writes clean, feature-rich, well-structured code. So when an instructor sees a submission that's too feature-rich — too far ahead of the rubric — the default assumption has flipped from "this student is talented" to "this student cheated."
That assumption punishes exactly the wrong people:
- Self-taught devs who learned outside the classroom
- Career changers with professional experience
- Students with real portfolios taking intro classes for credit
- Anyone whose side projects are years ahead of the curriculum
The paradox: the more evidence you have that you can code, the more suspicious your classwork looks.
How I Handled It
I didn't get defensive. I wrote my instructor a message that did four things:
- Owned the situation calmly — acknowledged the concern was reasonable
- Explained my background — Limn Engine, Evolved Tech, years of shipping
- Pointed to the rough edges — the exact quirks above, as proof of authorship
- Offered verification — line-by-line walkthrough, oral quiz, live coding, or a simpler version that strictly meets the rubric
That's the playbook. Not "you should have known better." Not accusations. Evidence + willingness + respect.
The instructor isn't the villain. Their job is to make sure students actually understand the material, and AI has made that job exponentially harder. If I were in their seat, I'd be paranoid too.
What Educators Should Do Differently
If you're an instructor reading this, here's what I'd ask:
- Look at style, not just features. Feature-rich ≠ AI-generated. Rough edges matter.
- Ask before accusing. "Can you walk me through this?" is a better first move than a temporary zero.
- Shift toward process-based assessment. Oral quizzes, live coding, commit history — these tell you far more than a final product ever could.
- Assume good faith first. Some of your students are building game engines at 2 AM on 4GB laptops. They exist.
And if you're a self-taught dev taking formal classes:
- Don't dumb down your work. That's a losing game.
- Keep your drafts and commit history. Evidence matters.
- Be able to explain every line. If you can't explain it, you don't own it.
- When you get flagged, don't panic. Offer to demonstrate. Make it easy for the instructor to verify.
- Rough edges are your friend. Don't polish so much that the work stops looking like yours.
The Bottom Line
I'm not mad at my instructor. I'm frustrated at the system that made this inevitable — one where years of self-taught effort looks indistinguishable from a chatbot's output, and where the only way to prove yourself is to stand in front of someone and explain what you wrote.
Which, honestly, is exactly what should have happened from the start.
The rough edges in my code aren't bugs.
They're the receipts.
See python code here
What's your experience? Have you been flagged for "too good" work? Or are you an educator trying to navigate this mess? Drop it in the comments — I'd love to hear both sides.
I'm Kehinde Owolabi, creator of Limn Engine and founder of Evolved Tech. I build browser games and game tooling. Follow me if you want more posts about self-taught development, tooling, and the messy intersection of code and education.

Top comments (0)