Dijkstra's "Software Engineer" in 1972

Dated: 

October 1972

John C. Reynolds wrote to me:

As Dijkstra was fond of pointing out, the community of people who call themselves “software engineers” is marred nowadays by an abundance of second rate work — so much so that others have come to disdain the term and call themselves “computer scientists”. But in the 60’s and 70’s, people such as Hoare, Wirth, and Dijkstra proudly and properly called themselves software engineers, and managed to be simultaneously rigorous and useful.

The previous passage is part of Reynolds's comments on my book The Dawn of Software Engineering: from Turing to Dijkstra [1]. Reynolds's recollections are supported by Dijkstra's Dutch texts EWD 349 and EWD 353, both written in 1972, in which he used the English words "software engineer". For example, Dijkstra wrote:

We, professors in Eindhoven, have discussed the curriculum of mathematical engineering at length. We have come up with a list of courses for those students who want to become software engineers. [Paraphrased translation from EWD 353, p.0]

Dijkstra continued by enumerating eight mandatory courses, including:

  • Introduction to the Art of Programming (i.e. Dijkstra's course on programming methodology with a strong emphasis on program correctness)
  • Applied Logic (i.e. automata theory)
  • Syntactic Techniques (i.e. parsing, type checking)
  • Axiomatisation of Semantics (cf. Hoare's 1969 paper [2])

The four courses listed above are very mathematical in nature. Turing's and Post's influence were especially felt in the Applied Logic course, as Dijkstra alluded to in [EWD 349, p.3]. Applied Logic served the purpose of teaching formal techniques of standing; that is, techniques that gave software engineering a more solid basis. These techniques included formal systems and (un)decidability questions. Dijkstra explicitly mentioned generative grammars, the ambiguity problem, and Chomsky and Church. In the brand new course on Axiomatisation of Semantics, students would formalize some of the results that Dijkstra had intuitively derived in his programming methodology course. Dijkstra emphasized that axiomatically defining the semantics of a programming language was a new research topic.

Unsurprisingly, however, not every Dutch academic shared Dijkstra's views on a curriculum for “Informatica” — a term which, given the context, I am tempted to translate to “software engineering”. According to Dijkstra, many of his critics were unaware of the existence of the foundations of “Informatica”. His critics did not see that each computer program shares an application-independent and theoretical foundation. This unawareness, in turn, explains why his critics wanted to disperse the “Informatica” courses over various university departments, instead of create an independent “Informatica” curriculum [EWD 349, p.0].

Dijkstra's observation in 1972 supports the claim made in my book [1] that many computer professionals in the 1950s and 1960s were unaware of the theoretical work of Turing (and, similarly, of Post's and Church's work). Today, Turing is proclaimed by many to be the “father of computer science”, but this was a far less common view in 1972 and even though seven Turing Awards had already been handed out.

[1] E.G. Daylight, The Dawn of Software Engineering: from Turing to Dijkstra, Lonely Scholar (2012).

[2] C.A.R. Hoare, An Axiomatic Basis for Computer Programming. Commun. ACM 12 (10): 576-580 (1969).

Tags: 

3 Comments

Translation?

Do you have complete translations of EWD349 and EWD353 (and any other EWDs in Dutch)? If so, would you mind publishing them here (or somewhere), please?

Best regards,
Kevin.

Translations

Dear Kevin,

Unfortunately, I don't have any translations of EWDs. Moreover, I don't have the copyright of the EWDs. I could try to get permission to translate some historically valuable EWDs. Having said that, it would take me quite some time to translate even just one Dutch EWD because doing justice to Dijkstra's sublime writing skills isn't easy.

An alternative is to have a skype session in which I orally provide paraphrased translations.

best wishes, Edgar.

RE: Translations

Many thanks for your generous offer but that's ok. I think I have the gist of it...

Best regards,
Kevin.