Writing the whole sequence before execution is what separates an algorithm from trial and error: the child has to simulate the outcome mentally. Returning to the start on failure introduces debugging, which teaches that an error lives in the instructions rather than in the person.