top | item 3227620

The Philosophy of Computer Science

107 points| ahmicro | 14 years ago |science.uva.nl | reply

14 comments

order
[+] davesims|14 years ago|reply
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...)

[+] liedra|14 years ago|reply
This is the Stanford Encyclopedia of Philosophy, not a course. So of course, philosophy of technology is in another entry: http://www.science.uva.nl/~seop/entries/technology/

However, a course in general philosophy of computing and technology should include a far wider range of topics than just the ones listed in the original entry. It should include ethics and applied philosophy as well.

[+] T_S_|14 years ago|reply
One thing that interests me is the "inductive leap" implicit in all modeling situations. You have empirical risk minimization, Bayesian, MML, MDL and others all taking a different approach to taking the leap. You also have the "mind projection" fallacy Jaynes liked to talk about.

Understanding what modelers do is a good way to understand what AI will be doing.

[+] FreakLegion|14 years ago|reply
Those are research topics, not items for a curriculum. Certainly they have the potential to make interesting papers, but they're far too narrow to support an entire course of study.
[+] ctkrohn|14 years ago|reply
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
[+] gwern|14 years ago|reply
That was a really good essay; I strongly recommend it to anyone who enjoyed, say, Hofstadter's GEB.
[+] geogra4|14 years ago|reply
I read this earlier. It was fantastic
[+] hxa7241|14 years ago|reply
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