Clearly, programming courses should teach methods of design and construction, and the selected examples should be such that a gradual development can be nicely demonstrated.
Niklaus WirthIt is evidently necessary to generate and test candidates for solutions in some systematic manner.
Niklaus WirthGood engineering is characterized by gradual, stepwise refinement of products that yields increased performance under given constraints and with given resources.
Niklaus Wirth