A learner is stuck on a problem. A teacher, parent, or tool intervenes quickly, explains the next step, and the task moves forward. Everyone feels relief.
That relief can be expensive.
Some difficulty is not a sign that teaching has failed. It is often the condition under which understanding becomes retrievable later. The educational literature calls this productive struggle: effortful work on a problem that remains within reach, where the learner is challenged but not abandoned.
The risk with instant answers — human or machine — is not help itself. It is help that arrives before the learner has done the kind of thinking the task was meant to produce.
The idea
Learning is not only exposure to correct information. It also depends on:
- Recall — retrieving what was learned before, under mild pressure.
- Repair — noticing that an approach fails and adjusting it.
- Discrimination — learning when one method applies and another does not.
- Effortful construction — building an explanation or solution step by step, not receiving one ready-made.
Productive struggle is the interval in which those processes still have room to run. The learner may be slow, uncertain, or visibly frustrated. That discomfort is not proof that the task should be simplified immediately. It may be proof that the task is doing its job.
This is easy to confuse with a belief that suffering is good for its own sake. It is not. Unproductive struggle — repeated failure with no path forward, no feedback, and no sense of progress — wastes time and erodes confidence. The distinction matters.
Productive and unproductive struggle
A rough practical test:
| Signal | Productive struggle | Unproductive struggle |
|---|---|---|
| Progress | Small advances, partial models, better questions | No change after sustained effort |
| Error | Mistakes that reveal a specific misconception | Random guessing or disengagement |
| Support | Hints that preserve thinking (“What have you tried?”) | Hints that replace thinking (“Here is the answer”) |
| Affect | Frustration with continued engagement | Shutdown, avoidance, or learned helplessness |
| Aftermath | Better recall or transfer on a related task | No improvement when the prompt changes slightly |
The goal is not maximum difficulty. It is appropriate difficulty: hard enough to require thought, supported enough that the learner does not conclude the subject is impossible or not for them.
In computing education, appropriate difficulty might mean debugging a program that almost works, explaining an algorithm in plain language, or predicting the output of code before running it. In each case, the struggle is tied to a specific capability the teacher values.
What instant help removes
When help arrives too early, learners can still finish the task. What they may not build is the underlying competence.
Common losses:
- Retrieval practice. The answer appears before memory is tested.
- Error signals. A wrong approach is corrected before the learner notices why it fails.
- Ownership. The final product reflects the tool’s reasoning, not the learner’s.
- Confidence calibration. Smooth completion suggests mastery that may not survive a small change in the question.
This connects directly to a separate problem: fluent answers are not understanding. A polished response can hide absent reasoning. Removing struggle often increases fluency while decreasing learning.
That does not mean teachers should withhold support until learners are exhausted. It means support should be timed and shaped so that thinking remains the learner’s work.
A classroom example
Suppose Year 10 pupils are asked to write a function that returns the largest value in a list.
A pupil submits this:
def largest(numbers):
biggest = 0
for n in numbers:
if n > biggest:
biggest = n
return biggest
It works for many test cases. It fails for lists of negative numbers.
Unproductive intervention: replace the function with a correct version and move on. The lesson ends; the misconception about initialisation remains.
Productive intervention: ask targeted questions.
- What happens if the list is
[-3, -1, -2]? - Should
biggestalways start at0? - What value should
biggesttake before the loop begins?
The pupil might arrive at:
def largest(numbers):
biggest = numbers[0]
for n in numbers[1:]:
if n > biggest:
biggest = n
return biggest
The struggle was not the syntax. It was the assumption that “largest so far” can start at zero. That assumption is worth surfacing because it will reappear in other contexts.
An AI assistant can play either role. It can ask Socratic questions, generate counterexamples, or propose test cases. It can also hand over a corrected function in one sentence. The instructional design — and the norms around tool use — determine which behaviour dominates.
Designing for struggle
Teachers and task designers can make productive struggle more likely without turning lessons into endurance tests.
Start from the capability, not the format. Ask what the learner should be able to do after the task, then design difficulty around that capability.
Make process visible. Require intermediate artefacts: a plan, test cases, a short written justification, a prediction before execution. These are harder to outsource without detection and easier to discuss.
Use hints that preserve agency. Prefer:
- “What is the smallest case?”
- “Run your code on an empty input.”
- “Explain step three in your own words.”
over:
- “Here is the completed solution.”
Change the surface, not only the number. If every problem is the same shape with different integers, learners learn the template, not the idea. Mild novelty exposes template dependence quickly.
Separate draft from polish. A rough correct argument is more valuable than a fluent finished essay the learner did not construct. Polish can come later; the initial reasoning cannot always be reconstructed afterwards.
Build norms early. If the classroom culture rewards speed and perfect presentation, learners will rationally choose tools that optimise those signals. If it rewards explanation, testing, and revision, struggle becomes socially acceptable.
Using AI without removing it
AI does not have to eliminate productive struggle. It can support it when the role is explicit:
| Role | Example prompt or use |
|---|---|
| Questioner | “Ask me three questions about my draft without giving the answer.” |
| Counterexample generator | “Give me inputs that might break my function.” |
| Explainer on demand | “I got this error. Explain what it means, not how to fix it yet.” |
| Practice partner | “Give me a similar problem with different constraints.” |
What tends to undermine struggle is the default posture of many tools: complete the task, smooth the prose, remove uncertainty.
For educators, the practical question is not “AI or no AI?” It is: which parts of this task must remain the learner’s thinking for the learning objective to be met? Everything else is negotiable.
For learners, a useful habit is to pause before asking for a full solution and ask instead: What am I trying to figure out? What have I already tried? What would count as evidence that I understand this?
What to try next
Productive struggle is not romanticised difficulty. It is a design choice about where effort should sit.
If you teach, tutor, or write tasks in technical subjects, consider:
- Which steps in your current assignments could be completed fluently without understanding?
- Where would a five-minute struggle teach more than a five-second answer?
- What support preserves thinking rather than replacing it?
Preserve struggle where it earns learning. Remove friction where it does not. The art is telling the difference — and that judgement is itself part of serious teaching.