Algorithms and Their Explanations

By analysing the explanation of the classical heapsort algorithm via the method of levels of abstraction mainly due to Floridi, we give a concrete and precise example of how to deal with algorithmic knowledge. To do so, we introduce a concept already implicit in the method, the ‘gradient of explanations’. Analogously to the gradient of abstractions, a gradient of explanations is a sequence of discrete levels of explanation each one refining the previous, varying formalisation, and thus providing progressive evidence for hidden information. Because of this sequential and coherent uncovering of the information that explains a level of abstraction—the heapsort algorithm in our guiding example—the notion of gradient of explanations allows to precisely classify purposes in writing software according to the informal criterion of depth’, and to give a precise meaning to the notion of ‘concreteness’.

[1]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[2]  P. Allo The logic of ‘being informed’ revisited and revised , 2011 .

[3]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[4]  Ronald L. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[5]  Giuseppe Primiero,et al.  Offline and online data: on upgrading functional information to knowledge , 2012, Philosophical Studies.

[6]  M Curran,et al.  The Ethics of Information , 1991, The Journal of nursing administration.

[7]  Marco Benini,et al.  From Ancient to Modern Computing: A History of Information Hiding , 2013, IEEE Annals of the History of Computing.

[8]  M. Benini,et al.  What Can We Know of Computational Information? Measuring, Quantity, and Quality at Work in Programmable Artifacts , 2014, Topoi.

[9]  Luciano Floridi,et al.  What is the Philosophy of Information , 2002 .

[10]  Lawrence S. Moss,et al.  Vicious circles - on the mathematics of non-wellfounded phenomena , 1996, CSLI lecture notes series.

[11]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[12]  D. Eisenbud Commutative Algebra: with a View Toward Algebraic Geometry , 1995 .

[13]  Marco Benini,et al.  Why zombies cannot write significant source code: The Knowledge Game and the art of computer programming , 2015, J. Exp. Theor. Artif. Intell..

[14]  Patrick Allo Information and Logical Discrimination , 2012, CiE.

[15]  Marco Benini,et al.  The Minimal Levels of Abstraction in the History of Modern Computing , 2013, Philosophy & Technology.

[16]  K. Brown,et al.  Graduate Texts in Mathematics , 1982 .

[17]  Fotini Markopoulou,et al.  The Computing Spacetime , 2012, CiE.

[18]  Luciano Floridi,et al.  The Method of Levels of Abstraction , 2008, Minds and Machines.

[19]  M. V. Wilkes,et al.  The Art of Computer Programming, Volume 3, Sorting and Searching , 1974 .