Computing Reviews

The human face of computing (vol. 9)
Calude C., Imperial College Press, London, UK, 2015. 448 pp. Type: Book
Date Reviewed: 09/12/16

This enjoyable collection of conversations with 26 outstanding computing scientists and mathematicians is to a certain extent a follow-up to a collection of authored papers [1], also edited by Calude. The most fascinating fragments of many papers in both books directly or indirectly respond to the famous statement by Richard Feynman from his Nobel lecture, quoted by Borwein on page 151: “There isn’t any place to publish, in a dignified manner, what you actually did in order to get to do the work” (E. W. Dijkstra independently stressed the need to be explicit in describing program design considerations and design processes [2]).

The famous mathematician Stanislaw Ulam assessed, in the 1970s [3], that around 100,000 theorems are published annually in mathematical journals. The number of published books in mathematics and computing science is also quite substantial, and it may not be easy to find those that are worthy of (re)reading. The frank and buzzword-free book under review is among the exceptional: first, the conversations accentuate (systems of) concepts rather than technical details and tools; and second, most conversations are not very technical and can be understood by nonexperts (including students). The collection presents commented scientific (auto)biographies with an emphasis on the professional, social, and at times political environments (for a feeling of the latter, note Rozenberg’s remark that the Institute of Mathematics of the Polish Academy of Sciences was for him, when he lived in communist Poland, “a real oasis of tranquility: while there, the surrounding reality of the totalitarian political system was non-existent” (p. 344)).

The very first conversation, with Dines Bjørner, clearly supports Ludwig Boltzmann’s observation that “there is nothing so practical ... of use in engineering as a good theory,” quoted by Bjørner on page 7. Specifically, Bjørner’s emphasis on solid theoretical education and the need for domain engineering as essential for success in software engineering explains at least some problems there:

Before software can be developed one must understand its requirements. But before requirements prescriptions can be developed one must understand the domain. Electronics, automotive, aeronautics and aerospace, etc. engineers all have a solid education in physics ... so they understand their domain. Not so for today’s software engineers ... who develop software for container lines, banks, railways, the market, hospitals, etc. (pp. 8-9)

Domain understanding and rigorous modeling is the most important aspect of business analysis that results in successful projects, demonstrated both in the numerous works by Bjørner (see, for example, references in [4]) and elsewhere (for example, in [5]). All too many counterexamples--failed projects--have been regularly described in the famous “Risks to the Public” column by Peter Neumann in Software Engineering Notes.

Education is at least partially at fault, as stressed, again, by Bjørner:

Due to political pressures ... our informatics departments are caving into teaching “ready-to-wear” subjects, viz., “Using Oracle SQL-developer version 1.5.2,“ ... or UML or Ada.... Considerable progress in our sciences is getting lost by not being taught.... I am rather pessimistic about the future of real education, in German, “bildung,” in our sciences. (p. 9)

Similar observations were made by other authors. For example, Maurer stresses that applied areas of computer science (CS) must be taught “in a generic way ... making clear the underlying principles” rather than “study or work with concrete systems” (p. 404). Downey observes that in CS “the university experience is seen [by students] more like an apprenticeship. [...] The students often don’t give mathematics their best shot as they are too busy writing code” (p. 220). In other words, the emphasis ought to be on semantics, and the best professors--not necessarily the mainstream ones--do just that. As an example, teaching CS without using computers, while unpopular, is not new [2], and more recently it was, “in contrast with IT skills such as the use of Microsoft products” (p. 136), successfully realized (for children!) in a well-known but unpublished book by Witten (http://csunplugged.org/). On a somewhat related note, Vardi and other authors emphasize the need for industrial research laboratories that “support curiosity-driven research on a large scale,” like “Bell Labs in its heyday,” rather than just funded research. In this context, Salomaa mentions the perceived need to be buzzword compliant: “Apparently ... it seems that right now you should use the words bio and/or nano ... to sell your work” (p. 75).

The contributors to this book are usually not “monomaniac mathematicians” (p. 278), but have wide interests with deep insights into very diverse areas of mathematics, CS, physics, and at times the humanities and philosophy of science. I liked the statement of one such brilliant contributor, Yuri Manin, that when he could not achieve understanding of a new area “by just reading,” he applied “a remedy that was ... by this time well-rehearsed [by him: he] taught a course on mathematical logic” (p. 279), resulting in an outstanding and clearly non-monomaniac book (for its second edition, see [6]). Perhaps such approaches affected the contributors’ productivity, but as Manin proudly states, “My life is not a conveyor belt, this word is not in my vocabulary.” Somewhat similarly, Gelenbe observes that “it is so much easier ... for someone to say something numerical about someone else, rather than to make a qualitative statement or to actually try to understand another person’s contributions,” especially in the context of the deluge of published papers. As noted by Marcus, “there is a considerable waste of time and energy resulting from ignorance of what was already done” (p. 299), often using different terminology or in different contexts, in particular because a lot of the often valuable stuff is not reviewed anywhere.

The academic title of “mathematical engineer” (highly praised by E. W. Dijkstra, and earned not only by the graduates of the Department of Mathematics at the Eindhoven University of Technology) is certainly not alien to most authors of the book. For example, Mehlhorn observes that he is “a mathematician in the morning and an engineer in the afternoon.” This approach leads to strong but perhaps less popular opinions, such as those of Sifakis: “It is practically impossible to obtain any rigorous formalizations and build any useful theory for ... frameworks ... intended to describe real systems such as UML and AADL constructed in an ad hoc manner” (p. 99); Sifakis continues to observe that the current design flaw of computer systems is that they are empirical and thus lack rigor, and that “trustworthiness is a qualitative property [that] cannot be achieved by the fine-tuning of parameters” (p. 103). (Bjørner’s similar opinions are also both valuable and unpopular.)

Several authors discuss foundational issues such as the inadequacy of reductionism for understanding and describing complex systems. For example, Chatelin quotes Gödel against naive extrapolation from machine to mind (“mind, in its use, is not static but constantly developing, i.e., ... we understand abstract terms more and more precisely as we go using them” (p. 193)), and warns against the machine-program metaphor that “remains today the favorite concept of science to explain the life phenomena.” Similarly, Longo termed genetic reductionism “the largely financed myth,” inadequate for understanding embryogenesis or phylogenesis (evolution) (p. 258). Notably, he considers randomness to be “unpredictability with respect to the intended theory and measurement”--a statement important not only in the context of evolution. For another complex system, that of economics, Bridges observes that “mathematical economics ... generates beautiful, hard mathematics based on, but very far removed from, real-world economic problems” (p. 167)--some of us might recall essentially the same considerations going as far back as 1949 [7].

Summing up, one cannot but agree with the statement by Calude that “mathematics is a ‘superposition’ of modeling, reasoning and computing”--in good agreement with Dijkstra’s famous definition of mathematics as the art and science of effective reasoning. I think that the aim of the book stated on its back cover--“not only to inform and entertain but also to motivate and stimulate”--has been achieved.


1)

Calude, C. S. People and ideas in theoretical computer science. Springer, New York, NY, 1999.


2)

Dijkstra, E. W. A discipline of programming. Prentice-Hall, Upper Saddle River, NJ, 1976.


3)

Ulam, S. M. Adventures of a mathematician. University of California Press, Berkeley, CA, 1991.


4)

Bjørner, D. Domain science & engineering: a foundation for computation for humanity. 2012. http://www.imm.dtu.dk/~dibj/human-bjorner-colour.pdf.


5)

Kilov, H.; Baclawski, K. (Eds.) Practical foundations of business system specifications. Kluwer, Dordrecht, 2003.


6)

Manin, Y. I. A course in mathematical logic for mathematicians. Springer, New York, NY, 2010.


7)

von Mises, L. Human action: a treatise on economics. Yale University Press, New Haven, CT, 1949.

Reviewer:  H. I. Kilov Review #: CR144758 (1612-0887)

Reproduction in whole or in part without permission is prohibited.   Copyright 2017 ComputingReviews.com™
Terms of Use
| Privacy Policy