On The Cruelty of Really Teaching Computer Science - Pedagogical Legacy

Pedagogical Legacy

Computer science as taught today does not follow all of Dijkstra's advice. Following Dijkstra's earlier writings, the curricula generally emphasize 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. 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.

There is also greater emphasis on the social aspects of programming, such as learning how to program as part of a team, and how to write code that is easily re-used by other people. Some institutions focus more on pleasing the computing industry by teaching the most popular programming languages, or teaching the use of commonly available development tools, than they do on imparting the foundational concepts of computing science.

Read more about this topic:  On The Cruelty Of Really Teaching Computer Science

Famous quotes containing the word legacy:

    What is popularly called fame is nothing but an empty name and a legacy from paganism.
    Desiderius Erasmus (c. 1466–1536)