"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"
About this Quote
The tell is “methods of design and construction.” He’s not talking about syntax, nor even about problem-solving in the abstract. He’s pointing to process: decomposition, invariants, interfaces, data representation, the slow accumulation of structure. This is the ethos that produced Pascal and Modula-2, languages designed to make good habits easier and bad habits harder. The quote reads as mild pedagogy; it’s also a rebuke to curricula that confuse facility with fluency.
Then comes the quiet provocation: “selected examples” that allow “gradual development.” Wirth is allergic to the demo that arrives fully formed, polished, and unteachable. He wants examples that can be grown in front of students, with visible trade-offs and revisions, so learners experience design as a sequence of constrained decisions rather than a lightning strike of genius. That preference reflects the era when software’s complexity was exploding and “software engineering” was still insisting it deserved the name.
The subtext is almost moral: if you teach programming as mere coding, you produce technicians. If you teach it as design and construction, you cultivate engineers who can build systems that last.
Quote Details
| Topic | Coding & Programming |
|---|---|
| Source | Verified source: Program Development by Stepwise Refinement (Niklaus Wirth, 1971)
Evidence: 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. (pp. 221–227 (Introduction section)). Primary source is Niklaus Wirth’s CACM paper: Commun. ACM, Vol. 14, No. 4 (April 1971), pp. 221–227, DOI: 10.1145/362575.362577. The quoted sentence appears in the opening/introductory passage of the paper (immediately after the abstract-like introductory paragraph). A publicly accessible HTML reprint containing the sentence (but explicitly labeled as a digitized copy derived from an ACM copyrighted work) is hosted by Peking University’s math site: https://www.math.pku.edu.cn/teachers/qiuzy/plan/lits/Program%20Development%20by%20Stepwise%20Refinement.htm. ([dblp.dagstuhl.de](https://dblp.dagstuhl.de/rec/journals/cacm/Wirth71.html?utm_source=openai)) Other candidates (1) Tutorial on Software Design Techniques (Peter Freeman, Anthony I. Wasserman, 1983) compilation98.2% ... Clearly , programming courses should teach methods of design and construction , and the selected examples should ... |
| Cite |
Citation Formats
APA Style (7th ed.)
Wirth, Niklaus. (2026, February 19). 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. FixQuotes. https://fixquotes.com/quotes/clearly-programming-courses-should-teach-methods-165560/
Chicago Style
Wirth, Niklaus. "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." FixQuotes. February 19, 2026. https://fixquotes.com/quotes/clearly-programming-courses-should-teach-methods-165560/.
MLA Style (9th ed.)
"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." FixQuotes, 19 Feb. 2026, https://fixquotes.com/quotes/clearly-programming-courses-should-teach-methods-165560/. Accessed 5 Mar. 2026.



