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...)
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.
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.
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.
Yeah, point taken. Or maybe each one as a graduate seminar or something. That said it seemed to me a number of topics in the UVA course descriptions were just as specific. Anyway, these were just titles I pulled out of the air, to get in the ballpark of issues closer to my philosophical bent.
The real problem is that there aren't any core texts for Philosophy of Computers, so just about anything you put together is going to end up looking like research.
I think though for a curriculum I would like to see more basic Philosophy of Technology and applied philosophical principles, particularly the ontological status of code and programs, and how we might relate Aristotelian notions of form to things like object hierarchies.
I can't say I've seen any seminars that were quite so specific (plenty of conferences, though!), but now that you mention it I have seen a few built around someone's work in progress. Those were, as a rule, amazing experiences, with the caveat that the topic was still broad enough that everyone involved could carve out their own path.
I'd probably favor a more Deleuzian vocabulary myself, but it'd be interesting to see where someone who ran with your ideas ended up regardless.
Deleuze -- yes, now we're talkin! There's a whole raft of phenomenologists I'd like to work in. Levinas, Jonas, Borgmann...
So, I just need to go get a PhD, write my dissertation on the Phenomenology of Code, then find a position against all odds at some research university, get tenure, help write a Philosophy of Computers and Technology curriculum...
Your odds might not be so bad. It's a tough market for anyone working in traditional (read: overcrowded) areas [1], but there are precious few folks working in the intersections, particularly between the arts and sciences [2]. Of course, you'd have to be willing to live below the poverty line for a while!
I highly recommend working up some paper abstracts and pitching them to conferences to gauge interest. There are plenty of organizers who won't care that you aren't affiliated with a university, and that would be a great chance for you to get in a room and chat with others who share your interest.
2. Purely anecdotal, but I've taken Ph.D. phil and lit seminars at Berkeley and UO, and never encountered another student who could even code. They must exist, but they're rare.
Ha, yeah it's that poverty line problem (not to mention the geographical volatility) that kept me out of academics and embedded (as it were) in the front lines of software development. Not conducive to the raising of the kids. Maybe someday...
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
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) . . .
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...)