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:
  http://www.hapoc.org/events/iacap

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.

http://cacm.acm.org/magazines/2013/6/164592-how-to-claim-your-fair-share-in-academic-publishing/fulltext

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.



Sunday, October 28, 2012

The Intuitive Path


It should be clear from earlier postings that, in this class, we want to investigate algorithms not as theoretical structures born of definitions and theorems, but as real, manifest, and colorful-- whatever that means, whatever they turn out to be, whatever flavor of ontology turns out to apply.  And we want to get there by going straight ahead down the path of inquiry, not branching through a thicket of terminology.

I wish to guide the class into ideas that come directly from their own experience of algorithms.   I admit to a lack of rigor.  I look about, ready to seize upon any justification for this plebeian approach.  And I find one-- experimental philosophy.

The young professor Joe Ulatowski, already known to us and visiting here for a year, came to my class for a discussion of experimental philosophy.  From this, the students gained (1) a general definition, based on the usual ethical issues such as trolley problems, (2) an understanding, and validation, of how the querying of our own and others' thoughts might aid the articulation of the concept of the algorithm.

I tossed out a couple of thought experiments, thinking that they were trivial and would be supplanted by more sophisticated version.  They have served well, however, and are still providing food for thought.

1.  Company A runs this algorithm to generate payroll: Take hours, take rate of pay, multiply together hours 40 or less to get the pay, then multiply hours over 40 by (rate*2), and add that to the pay.
Company B runs this algorithm:  Take hours, take rate of pay, multiply together hours 40 or less to get the pay, then multiply hours over 40 by (rate*1.5), and add that to the pay.  Are they executing the same algorithm?  Answer by consensus:  Yes, because the overtime rate is easily parameterized.  But what if Company B applies different overtime rates to different positions?  What if Company B adds a bonus in its payroll processing?

2.  In Company A, a manager wants to see a list of all of the staff, available in database table or spreadsheet form, grouped together by division.  Her assistant runs the sorting algorithm on the "division" field, knowing that the grouping is a result.  Is this single program executing two different algorithms?

While probing our intuitions about algorithms, we have built up a question set.  At first, I hoped to organize it into some kind of hierarchy, but that did not happen; the need faded away.  It remains heterogeneous and unorganized, like traditional brainstorming results.  Here are a few samples.

2.  Does an algorithm have to be digital?  Or symbolic?
8.  Is the algorithm a "natural kind?"
12.  Is the imperative construct compositional?
19.  Is developing algorithms an art or a science?
36.  What did Al-Kwarizmi actually say about algorithms?

The question set is the students' basis for both expository and philosophical essays, now underway.  And, by the way, we're still arguing about whether a recipe is an algorithm.

Wednesday, September 12, 2012

The First Couple of Weeks

The class has started off, with neither a bang nor a fizzle, but with satisfactory activities and solid interest.  Because my students did not sign up to serve as subjects of public discussion, and because the only view that I can relate is that of the instructor, I will forgo describing the class proceedings.

Suffice it to say that I am balancing the technical and the abstract, usually in each class session, by (1) examining and practicing algorithm tracing and representation, with simple sorting, searching, and encoding; and (2) discussing philosophy in general, and posing questions about individual and comparative features of algorithms.  We have read the entry, "Philosophy of Computer Science," in the Stanford Encyclopedia of Philosophy, and we have read Moshe Vardi's letter, mentioned previously, in the Communications of the ACM.  And I am assigning and collecting a steady stream of written work. 
I have taught, in a cursory way, more of the technical matter than I thought would be necessary at the start, such as semantic functions and compositionality, monotonicity, the entity-relationship model, with set theory coming up.  But no student is in danger of mastering those subjects in this class. 

We are also, in this course, testing a new Learning Management System, which brings our high-minded inquiries down to earth for dealing with the intricacies of web interfaces.  And we are discovering that some of the classrooms no longer provide the equipment that I expected.  I'm pleased to say that these mundane details of teaching are offset by the interesting questions and speculations already at play in the class.