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 WirthA primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.
Niklaus Wirth