Thursday, September 1, 2016

Blog at CACM

This blog is still cheerfully neglected by me, its author.  If you, its reader, are checking it for some reason, please note that I am writing a blog for the Communications of the ACM on the philosophy of computer science.

Two posts have appeared so far, covering matters that may be of interest to you.  You can see them, and all of the Blogs@CACM here:

Thursday, January 15, 2015


This blog is cheerfully neglected as I become more active in the development of the field Philosophy of Computer Science itself.  The class that I taught, on the ontology of algorithms, led to a talk, as mentioned before, and also to a full paper on that topic.

This paper, "What An Algorithm Is," has been published in the journal Philsophy & Technology, DOI 10.1007/s13347-014-0184-5 (but not Open Access).  Please see the site of the Commission on the History and Philosophy of Computing for this reference, and more research of interest, under Publications:

Friday, June 27, 2014

A Call for More Philosophy in the Philosophy of Computer Science

Delving more deeply into the current philosophy of computer science reinforces my view that enticing subjects have escaped exploration.  New concepts and artifacts have come out of computer science-- algorithms, data structures, parallel processing protocols, axiologies of programming practices, privacy and security concerns, and networking and communication designs have all emerged.  But the research that has been done on them, in great measure, treats them within their computational context rather than as objects of interest in their own right.  Shouldn't we apply philosophy to the phenomena that have been exposed by computing, as we apply philosophy to phenomena exposed by other social and scientific movements?

I have attempted to do that with regard to algorithms, as will be discussed at HaPoC 2014.  Some of these questions will have been addressed already-- I am not conversant with all research in the philosophy of computer science-- and I hope that alert readers will note that.

In metaphysics, for instance-- Do arrays exist in nature; what are the natural phenomena that correspond most closely to arrays (or linked lists, or other abstract data types that we find useful), and in what ways?  And what about the semantic web, which represents a major effort to establish a universal, or near-universal, ontology, shared among Web users for the benefit of all?  While considering the challenges of this symbolic work, the syntax and semantics, the tension between expressive and inferential power, we could also expand the metaphysical questions pertaining.  If we were to start from scratch to build an ontology of everything on paper, for people, and we were to start from scratch to build an ontology of everything in some data model, for a database, would they turn out to be the same?  Suppose, as seems likely, each effort fails at some point; would they have carved out the same portion of the universe to represent?  To what extent does a breakdown into entities, attributes, and relationships fit the real world?  What are the alternatives?  Is there some greater abstraction, some sort of category theory (computational or not), of information capture? 

And we can follow this path into novel issues of epistemology.  How about the epistemology of Web search?  What is search, anyway?  What type of doxastic re-structuring does a search result engender; how does finding an answer compare to learning a fact in some other way?  What type of knowledge acquisition in the panoply of epistemic theories best accounts for search?

We can even follow this path into aesthetics.  What is the nature of the satisfaction that comes from solving a symbolic problem, as in a game or a software design, and how does it relate to the appreciation of other arts?  Why is programming fun?  Why are there no elegant algorithms for calendar work (determing the day of the week for a given date, for example)?  Is it because our calendar is inherently ugly, and if so, in what sense-- because, developed  incrementally and ad hoc, the calendar doesn't fit any of the clean preferred patterns that we admire?  Do "hand-made" data structures somehow escape the digital abstractions that we have developed?  Or is it because the cycles of human-scale time are arbitrary?  But we view the irregularity of nature, with its spots, wrinkles, colors, shreds, and other unorganized details, as beautiful.  What does that say about us, and what does it say about the computational paradigm?

These questions might inspire student interest, as well as fostering respectable philosophical contributions based on scrutiny and interpretation of the computing phenomena that surround us.  Many of the papers that appear, on computational models of ethics (or action or explanation), or on information theory, or on intelligent agents, instead interpret philosophical questions in terms of symbolic computing.  There seems to be an inclination to set up a formal system to capture the concept, but the formal methods strip out some of the interesting material.  The approaches are complementary, and both should be pursued.

Tuesday, June 10, 2014

And Further Development-- IACAP 2014

I will be speaking on a panel, "History and Philosophy of Computing," that should prove to be an interesting look at that greater topic, at the annual conference of the International Association for Computing and Philosophy.  The symposium is organized by the Commission for the History and Philosophy of Computing.  It will be held in Thessaloniki, Greece, in July.

See the plan here:

Tuesday, October 1, 2013

An Outcome: Inchoate View of Algorithm Ontology

Since Moshe Vardi's Editor's Letter coincided so nicely with my own formulation of the theme of the philosophy of computer science class of Fall 2012, I wrote a letter to the editor (of the Communications of the ACM) outlining some of the questions that suggest a more grounded and less formal view of the algorithm.  I am now investigating the consequences.  (Here's a sentence that was deleted during editing:  "Let us suspend the notion that what a computer DOES must inform what an algorithm IS.")

The letter can be found here.  Please scroll down, as it is not the top entry.

Monday, May 27, 2013

A New Topic: Objective Search

Here is a new and different topic for a Philosophy of Computer Science class.

Objective web search-- search that carries no geographic or demographic predilections-- would seem to be critical for research. Google offers the option to turn off search history personalization, and to change the geographic context.  One attractive way to accomplish this would be for the search engine to explicitly list
all the factors at play (date and time, Internet activity, IP address area, recent purchases, social network contacts) in a search, and allow piecewise disabling of the filters.

Two types of parameters affect the results, of course-- the user's demonstrated interests and preferences, maintained in personalization data, and other people's opinions, reflected in the priority of results presented.  Is there any way to request "universal" search, which would return the same results under any circumstances, thwarting both types of parameters?  In the category of others' opinions, the Google algorithm PageRank, determining the order of appearance of retrieved web pages, obviously exerts an enormous influence on what users see.  What kind of factors affect the PageRank algorithm's authority measures?  Would objectivity require forgoing PageRank altogether, and if so, could some other efficient ranking organize the millions of results?  For example, could a known bias in one parameter be offset somehow by a conflicting bias?

Along with the question, "Can we get completely objective results from Internet search engines?", other questions arise:

1. Do students, and even academic staff and sophisticated researchers, understand the implications of personalized search?
2. As a free service, is Google required to provide services and options like this that the public, or the academy, demands?  Should it be treated as a public utility, under regulations that would force it to do so?  If so, how does the international nature of the Internet bear on that treatment and those regulations?

3. Is a "universal" or truly objective point of view for web searches possible, meaningful, desirable?  Is Google responsible for not just reflecting, but successfully defining, such objectivity in its presentations of results?  Is Google responsible for exposing all the factors pertaining to its searching and ranking algorithms?  Does the rise of the Internet affect traditional issues of subjectivity in research?

Under this topic, objective web search, the philosophical subject matter includes ethical and governance issues respecting social justice, as well as, perhaps, the epistemology of the prediction of requests.  The computer science subject matter includes design and analysis of search algorithms, as well as myriad issues regarding efficient distribution and retrieval of data.  The topic invites a multi-disciplinary approach.  The libraries of any educational institution would have cogent contributions to make.  The social sciences could advise on the effects of community, local, and regional factors manifest in socio-economic and business data.  History can tell us of the long-term effects of limited or distorted information.  

Friday, December 14, 2012

The Early Results

As the semester winds up, I feel that the course has been a success.  This precedes grading of the final exam, and inspection of the student evaluations, and is colored by the usual relief on achieving the minimal standard that no disaster occurred.  No one dropped out after the first week, no one imploded, and no one ran screaming from the classroom.  (As they must, for greatest significance, these statistics include the instructor.)

As a quick means of illustrating the outcomes, while keeping student work confidential, let me simply provide the questions from the Take-Home part of the final exam (which was complemented by an In-Class part).


1. Although we still haven’t decided whether an algorithm that we refer to by name, such as Selection Sort, includes all of its dynamic instantiations (executions), we know that it can’t be defined fully by just one execution trace. Why?

2. We have seen that games rely on input data during execution. Theoretically, the result of any deterministic process that has all input known at start can be computed by an observer without even running. Consider an auction, as well, and explain whether these things are algorithms, in your opinion.

3. (From the Final Review class): If a description, including task and preconditions, is part of an algo- rithm, what kind of part is it? What is the ontology of the description, and how does it relate to the ontology of the instructions? Here are some possibilities.

(a) The preconditions, because they are don’t fit our definition, are a separate but necessary part of an algorithm. The algorithm object is really a pair of things, one a written description and the other a written set of instructions as we have conceived of it.

(b) The preconditions are implicit in the instructions themselves, and don’t require a separate recognition. The algorithm is nothing without those conditions. So Binary Search, for example, because it works only on sorted data, “assumes” sorted data, without any need to say so explicitly.

Choose one, or make up your own, and defend it based on our accepted definition of algorithm, and your own view of the unsettled questions.

4. Choose one of the questions below to answer. Your answer may be speculative, but give reasons for your claims.

(a) We have never clearly discussed one of the questions from the textbook: Do we ourselves embody algorithms? This does not mean executing an algorithm deliberately and consciously; it means how we accomplish tasks in our daily lives. We have discussed performing Binary Search in a naive form, when searching in a phone book, for example. How about others, such as transmission protocols and LIFO processing? Does your view on these questions tell us anything about algorithms in general?

(b) Is recursion itself an algorithm? Recall that we have seen a definition of primitive recursion (giving the minimal structures of a programming language) that includes this operation:
f (x, 0) = h(x) 
f (x, succ(y)) = g(y, f (y)
Although it is given as a declarative, contributing to the definition of a set of functions, can it be construed as a set of directions and thereby an algorithm in itself? Explain your answer by using aspects of algorithms that we have seen in this class.

5. We have a list of still-controversial properties, as given in Chapter 10 of the textbook. These are attributes that may or may not apply to algorithms in general (or perhaps they have different values for individual algorithms). They are inter-dependent in many ways. Pick one and explain how settling its status would affect two of the other controversial properties.