← VCE Software Development U3O1

Bias and over-reliance when using AI to program

Trusting AI-generated code without checking it. The code may be biased, outdated or insecure, and you lose your own skills and judgement. Always review it and stay in control.

Understanding Bias and over-reliance when using AI to program in VCE Software Development U3O1

What it does: AI tools learn from older examples, so they can suggest deprecated or weak methods. Checking current documentation keeps the solution secure. Testing the AI output yourself shows you stay in control and do not just trust it. You must also understand what the code does. AI tools can produce faulty code that looks confident. The developer is responsible for reviewing and testing everything they use. AI learns from existing data, which can contain human bias. Developers must check outputs for unfair results and fix them. Over-reliance on AI means you stop practising. Without skills you cannot spot errors in AI code, or write code in an exam.

Common mistakes: This AI-style scoring code penalises older applicants, which is biased and unfair. A fair score should only use relevant factors, so the line should be 'score += years'. The old md5 module is outdated and insecure, and AI tools can still suggest it. It should be 'import hashlib' so the later hashlib.sha256() call works.

Class: _____________________  ·  Name: _____________________  ·  Date: _________

Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.

This module's key terms are also in a printable crossword (Modules 178–193) and word search (Modules 168–193).

Take this worksheet further — free with Cloodit

Each concept is reinforced from every angle — learned, then applied, then tested.

Learning
Duo
A student pastes AI-generated code into their project and submits it without reading it. Is this good practice?
No. The code could be biased, outdated or insecure, so it must be reviewed first.Yes. AI code is always correct, so checking it is a waste of time.
Matches
# AI wrote it, so I will paste it in without reading
↓
Pasting AI code without reviewing it means bias, outdated methods or security flaws go unnoticed. Review and test it first.
Applying
Meanings
Term
AI over-reliance
Meaning
Trusting AI-generated code without checking it. The code may be biased, outdated or insecure, and you lose your own skills and judgement. Always review it and stay in control.
Practice
reviewed = True
Testing
Gaps
password = ("Enter password: ")
Check Answer
Spots
2 score = skills * 2
3 score -= age // 10

Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.

The 'Nautilus' badge — Default Expert, one of Cloodit's 106 collectible badges
Students earn collectable badges

Over 100 of them, across seven natural biomes.

Study Buddy
Students build a real study resource

Turns their work into revision material ready for Flash Cards and Exam study.

Diamond Dash — one of Cloodit's live, competitive Sprint games
Students lock in with Sprints

Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.

A Cloodit certificate of achievement, ready to personalise and print
Custom printable certificates

Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.

Quick Questions

1. A student pastes AI-generated code into their project and submits it without reading it. Is this good practice?
A. No. The code could be biased, outdated or insecure, so it must be reviewed first. ✓
B. Yes. AI code is always correct, so checking it is a waste of time.
AI tools can produce faulty code that looks confident. The developer is responsible for reviewing and testing everything they use.
2. An AI writes a loan approval function that gives lower scores to people from certain postcodes. What is the problem?
A. This is fine because a computer cannot be unfair.
B. The code shows bias and could treat groups of people unfairly. ✓
AI learns from existing data, which can contain human bias. Developers must check outputs for unfair results and fix them.
3. Which is a sign that AI-generated code may be insecure?
A. It uses clear variable names and comments.
B. It builds an SQL query by joining user input straight into the string. ✓
Joining raw input into a query allows SQL injection. AI may copy risky patterns from its training data, so check for security weaknesses.
4. An AI suggests a Python method that was removed in newer versions. What is the risk?
A. The code may be outdated and fail or be unsafe in the current version. ✓
B. There is no risk because AI always uses the latest version.
AI is trained on past data and can suggest old or deprecated methods. Check the documentation for the version you are using.
5. A student lets AI write every program and never practises writing code. What is the likely result?
A. De-skilling: their own programming skills and problem-solving get weaker. ✓
B. Their skills improve faster because they write less code.
Over-reliance on AI means you stop practising. Without skills you cannot spot errors in AI code, or write code in an exam.

Match the Pairs

query = "SELECT * FROM users WHERE name = '" + name + "'" → Insecure AI-generated code: joining user input into an SQL string allows SQL injection, so it must be reviewed and fixed
if applicant_postcode in blocked_postcodes: reject() → Biased or unfair output: the rule rejects people by where they live, which could unfairly disadvantage a group
Outdated code: AI may suggest old methods that are no longer recommended, so check the documentation → import md5 # old, weak hashing library
Keeping a human in control: read the code, test it and be able to explain every line before you use it → assert calculate_total([2, 3]) == 5 # I tested it
# AI wrote it, so I will paste it in without reading → Pasting AI code without reviewing it means bias, outdated methods or security flaws go unnoticed. Review and test it first.
# Let AI write all my functions so I never need to learn how → Letting AI do all the coding causes de-skilling. You lose your own problem-solving skills and judgement. Use AI as a helper and write and understand code yourself.

Key Term

AI over-reliance
Trusting AI-generated code without checking it. The code may be biased, outdated or insecure, and you lose your own skills and judgement. Always review it and stay in control.

Fill in the Blanks

1. # AI hardcoded it; ask the user instead password = input("Enter password: ")
Hint: Type the function that reads what the user types, so the password is not hardcoded.
2. if reviewed and tests_passed: deploy()
Hint: Type the Boolean operator that needs both the human review and the tests to be true.
3. # Equal skills, so scores must match assert score(a) == score(b)
Hint: Type the comparison operator that checks two scores are equal, to test for bias.
4. # I wrote this myself, no AI def average(marks): return sum(marks) / len(marks)
Hint: Type the keyword that starts a function definition, a skill you keep by writing code yourself.
5. answer = input("Accept AI code? y/n: ") if answer == "y": print("Merged after review")
Hint: Type the keyword that lets the human decide whether the code is accepted.

Spot the Error

Question 1
A def pick(skills, years, age):
B score = skills * 2
C score -= age // 10
D return score >= 10
Line C — This AI-style scoring code penalises older applicants, which is biased and unfair. A fair score should only use relevant factors, so the line should be 'score += years'.
Question 2
A import md5
B pw = input('Password: ')
C data = pw.encode()
D h = hashlib.sha256(data)
Line A — The old md5 module is outdated and insecure, and AI tools can still suggest it. It should be 'import hashlib' so the later hashlib.sha256() call works.
Question 3
A code = ask_ai('sort list')
B review(code)
C if code:
D deploy(code)
Line C — Any non-empty AI code would pass this check, so the human is no longer in control. The condition should be 'if tests_pass(code):' so the code only deploys after it passes tests.
Question 4
A attempts = 3
B while attempts < 3:
C try_myself(task)
D attempts += 1
E ask_ai_hint(task)
Line A — Starting attempts at 3 means the loop never runs, so the student never tries the task and goes straight to the AI. This is de-skilling. It should be 'attempts = 0'.
Question 5
A def rank(applicant):
B return applicant.age < 30
C best = max(pool, key=rank)
Line B — Ranking by age builds unfair bias into the program. The rank should be based on relevant data, so the line should be 'return applicant.skills'.

Student with a class code? Join your class →