Tuesday, January 28, 2020

Teaching a First-Year Seminar in Computer Science

After an absence of some time, the author has returned with an item about teaching in response to a particular request for more specific materials.  Since I have already fallen into a pattern, I can explain the progress of the course in terms of that framework.

For the introduction and motivation, please see my new CACM blog series on the philosophy of computer science, at:
  https://cacm.acm.org/blogs/blog-cacm/238427-lessons-from-a-first-year-seminar/fulltext




The instructor who wishes to apply the ideas in this article should plug in her or his own specific materials, such as detailed computing topics and a classic work of literature with a theme shared by Internet issues.

Framework for a First-Year Seminar in Computer Science


Major Subject Areas (each about half of the material)
  COMPUTING:  Low-level fundamentals of computing, to introduce enough technical material that students construct a solid, though sparse, conceptual framework of computation, to support subsequent exploration and additional learning.
  INTERNET:  Issues that have emerged from the quick and broad penetration Internet services, particularly social media.  Computing is firmly connected to glaring bad outcomes that the inclusion is necessary, not contrived.

Reading and References
1.  Blown to Bits, by Abelson, Lewis, and Ledeen 2008, available for free as a PDF document online (both COMPUTING and INTERNET)
2.  Several articles from respectable news outlets, and other freely available journalism (for INTERNET)
3.  Web sources for introductory programming, and my own programming materials (for COMPUTING)
4.  Classic work of fiction on a theme related to an Internet issue, supporting assignments to foster humanities skills, such as reading, analysis, and discussion.  I choose a classic work of literature that illustrates a situation similar (given abstraction) to those we see today.
Fall 2018 class read "Frankenstein"; the shared theme was the unintended consequences of technology.
Fall 2019 class read "The Scarlet Letter"; the shared theme is public shaming.
Future Possibilities:
  "Things Fall Apart" where the theme is damage done to a way of life by hubris and intrusion from outside.
  "Madame Bovary" (or even "Emma") where the theme is the hubris of an intended social benefit that proves harmful.

More on the COMPUTING subject area:
I teach the barest fundamentals that allow a grasp of the computational paradigm--
Bits, bit strings and how they represent data, leading to their diverse interpretations by processing instructions.
Number systems, leading to binary and hexadecimal representations, and discrete symbols.
Programming -- minimal structures are sequence, assignment statements, conditionals, and repetition, leading to algorithms and rudimentary design.
Arrays, leading to identification by location; hence, addressing.

The general pedagogical purpose of a first-year seminar, to foster student work at the college level, is fulfilled in part by the research paper assignment.  Students choose a topic of interest to them, related to computing; we go through example topics to demonstrate narrowing down the scope to something meaningful and tractable.  In addition to the usual incremental research paper assignments -- topic development, annotated bibliography, sentence outline, and drafts -- the students write pieces that explain aspects of computing.

Technology and humanities subjects can feed into each other.  My students:
1.  Mine the novel for unfamiliar words for purposes of lookup and search exercises.
2.  Study the technical concerns of writing, such as character codes, in terms of data.
3.  Design a simple graphic icon based on events or settings of the novel, which is then used as a subject for algorithms such as encoding and compression.

A group presentation assignment takes up some issue of the modern Internet and Web, with a topic drawn from current events.  In my experience, first-year students struggle to achieve adequate quality in research papers and presentations, and can be shocked by assessment at college standards.

Special needs for  a first-year seminar in Computer Science include a list of research sources -- scholarly, with peer-reviewed options, but suitable for freshmen (still under development, not satisfactory).

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:  http://cacm.acm.org/blogs/blog-cacm

Thursday, January 15, 2015

Publication

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

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.