To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

On the Cruelty of Really Teaching Computer Science

From Wikipedia, the free encyclopedia

"On the Cruelty of Really Teaching Computing Science" is a 1988 scholarly article by E. W. Dijkstra[1] 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.

YouTube Encyclopedic

  • 1/3
    Views:
    21 368
    17 360
    70 933
  • Richard Dawkins Reveals How Science Really Works: Imagination, Intuition, Evidence, and Truth
  • One Type of Job That AI, Robots, and Machines Can't Actually Automate | Andrew McAfee
  • John Cleese: You Should — No, You Must — Steal Your Way to Success

Transcription

Debate over feasibility

Since the term "software engineering" was coined, formal verification has almost always been considered too resource-intensive to be feasible.[citation needed] 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).[2]

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. Programming techniques to avoid bugs and conventional software testing methods are taught as basic requirements, and students are exposed to certain mathematical tools, but formal verification methods are not included in the curriculum except perhaps as an advanced topic.[3] So in some ways, Dijkstra's ideas have been adhered to; however, the ideas he felt most strongly about have not been.

Newly formed curricula in software engineering have adopted Dijkstra's recommendations. The focus of these programs is the formal specification of software requirements and design in order to facilitate the formal validation of system correctness. In Canada, they are often accredited engineering degrees with similar core competencies in physics-based engineering.[4]

References

  1. ^ Dijkstra, Edsger W. On the Cruelty of Really Teaching Computing Science (EWD-1036) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
  2. ^ Dijkstra, Edsger W. The end of Computing Science? (EWD-1304) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
  3. ^ MIT Courses :
  4. ^ "Software Engineering Programs Are Not Computer Science Programs" (PDF). Archived from the original (PDF) on 2013-09-27. Retrieved 2012-10-30.
This page was last edited on 16 October 2023, at 16:22
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.