
Procedural Practice Generator
Structure, parameters and control flow vary by seed. Optional heuristic marking stays separate from the editor.
Generator
Question
Generated material
Starter code
Reference solution
Optional VCAA-style practice marker
This is a heuristic educational estimate, not an official VCAA marking decision.
procedural engine · unicorngod
VCE Mistakes & Reference
Compact syntax reference plus patterns the analyser checks for.
Core syntax
Assignment, input and output
x ← 5 input a, b print x print i, j print(a + b)
Use ← for assignment. VCAA examples also use comma-separated output such as print i, j. In Learning mode, = may be interpreted as assignment when unambiguous, but it is still warned.
VCAA presentation conventions
Use one statement per line, indent statements inside decisions and loops, and close nested processes with forms such as end if, end for and end while. The editor bolds/highlights reserved words automatically.
For VCAA-like mathematical presentation, prefer × (or ordinary mathematical juxtaposition such as 2x) over programming-language *. The studio still accepts * in Learning mode for convenience.
Studio extensions
# comments, explicit step clauses, % and programming-style comparison operators are editor conveniences rather than the canonical Mathematical Methods forms shown in current VCAA examples. Exam mode flags the most important of these.
Selection
if x > 0 then
print x
else if x = 0 then
print 0
else
print -x
end ifLoops
for i from 1 to n
total ← total + i
end for
while abs(f(x)) > 0.001
x ← x - f(x) / df(x)
end whilefor i from 1 to n includes both endpoints.
Functions
define f(x):
return x^3 - x - 2Common VCE mistakes
= used for assignment
i = 1 is a comparison-style equality statement, not standard VCAA assignment notation. Prefer i ← 1.
Double-changing a for-loop counter
If for i from 1 to n already controls i, writing i ← i + 1 inside the body usually skips values or indicates a conceptual error.
Uninitialised counters and accumulators
Set counters such as count and accumulators such as sum before the loop unless they are deliberately supplied as input.
Inclusive loop boundary trap
for i from 0 to n executes n + 1 iterations, not n.
Probability count not normalised
A simulation counter generally needs to be divided by the number of trials to estimate a probability.
Possible infinite while-loop
The program should update at least one quantity that can change the loop condition.
Bisection midpoint not recomputed
After updating an endpoint, recompute the midpoint before the next decision.
Newton update mismatch
For Newton's method, the central update is x ← x - f(x)/f'(x) (or equivalent function names).