from Hacker News

The Philosophy of Computer Science

by ahmicro on 11/12/11, 11:18 AM with 14 comments

  • by davesims on 11/12/11, 7:07 PM

    It seems that this course's curriculum centers on the hardware/algorithmic/mathematical level more than the semantics and ontology of modern object programming. The latter is much more philosophically interesting to me, and to me it's that side of things that gets closer to the pertinent philosophical questions that are raised by the dominance of computers in our society.

    Also, no reference at all to the massive amount on The Philosophy of Technology written in the last hundred years? No Heidegger, Ellul, McLuhan?

    It seems to me that abstract, domain-level programming concerns like object hierarchies are more essential than algorithms or binary math to the intersection between Computer Science and Philosophy. Once you get past the parallels between, say Philosophical Logic and Digital Logic (the first six weeks of both classes cover many of the same rules -- DeMorgan, etc.), I think the most pressing concerns are best addressed within the realm of the Humanities, Liberal Arts, and a broad Philosophical discourse.

    The curriculum I'd like to see might have topics like:

    * Christopher Alexander, Aristotle and the Gang of Four: Are Design Patterns Nominalist or Formalist/Realist in nature? (You could go for a while on this one. I'd love to see the GOF's appropriation of Alexander critiqued, and maybe brought into contact with the concerns raised in Heidegger's essay The Question Concerning Technology).

    * Building, Dwelling, Coding

    * The Question Concerning Technology Revisited: Are we now Standing Reserves of Information?

    * Russell, Pierce, Saussure and the semantics of type systems

    * Bergson and Agile -- the relationship between intuition and iterative process

    Or something like that. You get the idea (or not...)

  • by ctkrohn on 11/12/11, 3:15 PM

    Along similar lines, Scott Aaronson recently wrote a long essay entitled "Why Philosophers Should Care About Computational Complexity." http://www.scottaaronson.com/blog/?p=735
  • by hxa7241 on 11/12/11, 7:11 PM

    What is abstraction? Here is an informal casual answer that works quite well.

    An abstraction unites something fixed with something varying. It specifies something fixed that ecompasses a set of variants.

    For example, an 8 bit number fits this straightforwardly. The number of bits and their interpretation as successive powers of 2 is what is fixed; the actual values of the bits is what varies.

    It seems quite a good definition: it is simple, and discrete -- it is measurable, and it very neatly fits software/computation. It is pretty much built-in to the basics of what we commonly take as computation, the bit -- a single element (fixed) with two values (varying between 0 or 1). And everything follows on top of that.

    And furthermore, this definition can even be seen as somehow quasi-fundamental, as inevitably arising in how natural systems behave (well, with a little imagination maybe -- it is worth a ponder) . . .

    http://www.hxa.name/notes/note-hxa7241-20110410T0910Z.html