On the Cruelty of Really Teaching Computer Science
article

"On the Cruelty of Really Teaching Computing Science" is a 1988 scholarly article by E. W. Dijkstra which argues that computer programming should be understood as a branch of mathematics, and that the formal provability of a program is a major criterion for correctness.
Despite the title, most of the article is on Dijkstra’s attempt to put computer science into a wider perspective within science, teaching being addressed as a corollary at the end.
Specifically, Dijkstra made a “proposal for an introductory programming course for freshmen” that
consisted of Hoare logic as an uninterpreted formal system.
Debate over feasibility
Since the term "software engineering" was coined, formal verification has almost always been considered too resource-intensive to be feasible. In complex applications, the difficulty of correctly specifying what the program should do in the first place is also a common source of error. Other methods of software testing are generally employed to try to eliminate bugs and many other factors are considered in the measurement of software quality.
Until the end of his life, Dijkstra maintained that the central challenges of computing hadn't been met to his satisfaction, due to an insufficient emphasis on program correctness (though not obviating other requirements, such as maintainability and efficiency).
Pedagogical legacy
Computer science as taught today does not follow all of Dijkstra's advice. The curricula generally emphasize techniques for managing complexity and preparing for future changes, following Dijkstra's earlier writings. These include abstraction, programming by contract, and design patterns.
The public source identifies “On the Cruelty of Really Teaching Computer Science” as article. This brief keeps that definition visible, then builds a research path around Cruelty, Really and Teaching.
Why this record matters
A short description can identify a subject without explaining its stakes. For “On the Cruelty of Really Teaching Computer Science”, the useful work is to connect “article” to the records capable of establishing context and consequence.
Vocabulary and entity names are the principal evidence signals here, because they determine the precision of every later search. The source revision retrieved here is dated Apr 29, 2025. The linked authority identifier is Q7091329. None of the 1 selected statements returned an explicit reference. The first chronological checks are 1988.
Overview language is designed for orientation and should not be treated as a substitute for the evidence cited beneath it. The lead is largely declarative, so disagreement and counter-evidence require a deliberate search beyond the opening account. Authority statements aid reconciliation but still require their own references, qualifiers and ranks to be checked.
How to read it
Use the entry as an orientation point, then follow its citations and revision history. Names, dates and institutional relationships should be checked against the original record.
- Subject orientation
- Search vocabulary
- Locating named sources
The closest primary source, responsible institution and strongest cited specialist reference.
Three-step research path
- Establish the record: confirm the title “On the Cruelty of Really Teaching Computer Science”, its source revision and the description used here.
- Expand the search: follow On the Cruelty of Really Teaching Computer Science primary sources, On the Cruelty of Really Teaching Computer Science archive and Cruelty research across catalogues and specialist indexes.
- Test the account: compare the strongest cited source with the responsible institution’s current record and note any disagreement.
Questions for further research
- Which source most directly establishes the central claim about “On the Cruelty of Really Teaching Computer Science”?
- Which cited source is closest to the event, object or claim?
- Which institution is responsible for the underlying evidence?
Search terms from this dossier
This entry incorporates text from “On the Cruelty of Really Teaching Computer Science” on English Wikipedia. Contributors are listed in the page history. Text is available under the Creative Commons Attribution-ShareAlike 4.0 License. Selected authority identifiers and statements are retrieved from Wikidata under CC0; their references and qualifiers remain part of the verification path.