Het is gebruikelijk om gestructureerd programmeren te onderwijzen met behulp van stapsgewijze verfijning. Maar de werkstukken die studenten inleveren bestaan uit gecompleteerde programma's en de toegepaste verfijningen moeten daar als het ware uit worden ge-'parsed'.
Het zou veel overzichtelijker zijn om omgekeerd te werken: documenteer de verfijningen en genereer daaruit de programmafiles. Knuth heeft deze benadering 'Iiterate programming' genoemd.