FACTOID # 79: Australians are the most likely to join charities, educational organizations, environmental groups, professional organizations, sports groups and unions. But only three percent join political parties.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > The Cruelty of Really Teaching Computer Science

The Cruelty of Really Teaching Computing Science” is a 1988 paper 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. Year 1988 (MCMLXXXVIII) was a leap year starting on Friday (link displays 1988 Gregorian calendar). ... Edsger Wybe Dijkstra (May 11, 1930 – August 6, 2002); IPA: ) was a Dutch computer scientist. ... Programming redirects here. ... For other meanings of mathematics or uses of math and maths, see Mathematics (disambiguation) and Math (disambiguation). ... In mathematics, a proof is a demonstration that, assuming certain axioms, some statement is necessarily true. ... A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ...


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. Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ... A magnet levitating above a high-temperature superconductor demonstrates the Meissner effect. ... A theorem is a statement which can be proven true within some logical framework. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... In logic and mathematics, a formal system consists of two components, a formal language plus a set of inference rules or transformation rules. ...

Contents

Debate over feasibility

In modern software engineering practice, formal verification is almost always 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 eliminate bugs and many other factors are considered in the measurement of software quality. In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics. ... Software testing is the process used to measure the quality of developed computer software. ... A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended (e. ... When applied to software the adjective quality may apply to source code as seen by software developers, or to applications software as seen by the end-users of the software. ...


The notion that cost of production should be a constraint in programming was foreign to Dijkstra. He viewed the cost controls as artifacts that could become excuses and the controls of nature as nonexistent in digital systems, which above the level of circuits guarantee a second, constructed nature.[citation needed] A digital circuit that acts as a binary clock, hand-wired on a series of breadboards Digital electronics are electronics systems that use digital signals. ...


Dijkstra, to the end of his life, maintained that computing’s central challenges hadn’t been met to his satisfaction, due to an insufficient emphasis on the program correctness (though not obviating other requirements, such as maintainability and efficiency).[1] In theoretical computer science, correctness of an algorithm is asserted when it is said that the algorithm is correct with respect to a specification. ... In telecommunication, the term maintainability has the following meanings: A characteristic of design and installation, expressed as the probability that an item will be retained in or restored to a specified condition within a given period of time, when the maintenance is performed in accordance with prescribed procedures and resources. ... In computer science, efficiency is used to describe several desirable properties of an algorithm or other construct, besides clean design, functionality, etc. ...


Pedagogical legacy

Computer science as taught today generally does not follow Dijkstra's advice. It generally emphasizes techniques for managing complexity and preparing for future changes. 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. [2]


There is also greater emphasis on the social aspects of programming, such as learning how to engineer as part of a team, and how to write code that is easily re-used by other people.[citation needed] Some institutions focus more on practical engineering skills, such as learning popular programming languages or how to use commonly available tools, rather than the underlying theory of computer science.[citation needed]


Gender issues

The paper triggered a discussion in 1990 in the Communications of the ACM because two computer science educators felt that Dijkstra’s views were exclusionary of women, who, it was claimed, would be more interested in group projects and the use of software products, in place of the exacting demand, by Dijkstra, for formal, mathematical thought by individuals, who would then defend their programs and derivations to like-minded peers.[citation needed] Year 1990 (MCMXC) was a common year starting on Monday (link displays the 1990 Gregorian calendar). ... Communications of the ACM (CACM) is the flagship monthly magazine of the Association for Computing Machinery. ...


References

  1. ^ See EWD 1304 - The end of Computing Science?
  2. ^ See e.g. http://web.mit.edu/6.170/www/lectures/lectures.html, and courses 6.001, 6.033, 6.042, 6.170 (requirements for undergraduate CS majors) descriptions in the MIT Course Catalog at http://student.mit.edu/catalog/m6a.html

External links


  Results from FactBites:
 
The Cruelty of Really Teaching Computer Science - Wikipedia, the free encyclopedia (449 words)
“The Cruelty of Really Teaching Computer Science” is a 1988 paper by E.
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.
Teaching (152 words)
Teaching method Current teaching philosophies, at least in California, are aimed at fulfillng the precepts of a curricul...
Teaching stories Teaching stories is a term introduced by Idries Shah to describe stories and anecdotes that have been d...
The Cruelty of Really Teaching Computer Science The Cruelty of Really Teaching Computer Science is a paper by provabilit...
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.