Does Philosophy Have a Role in Computer Science?
Johannes Climacus asks: "It would seem to me that philosophical works of philosophers such as Aristotle, Leibniz, Frege, Russell, and Tarski could play a central role in a Computer Science curriculum, as they form a mathematical basis of modern CS and Math. Ethicists such as Plato, Kant, Hegel, Mill, and Heidegger might also play a normative role in Computer Ethics and technology in general. However, I haven't seen any philosophical discussion in any of my theoretical computer science courses besides some simple logic. Is it the same elsewhere? How often do philosophical concerns play into Computer Science education as a whole? What role does (or could) philosophy have in Computer Science or Information Technology?"
In order to think outside the box of contemporary computer science.
Certain philospohical problems - the Mind/Body problem is one that leaps immediately to mind - have ramifications for CS, especially in AI applications.
On a more general level, logic is an important component of both fields.
Also, on an even more general level, anything worth doing is worth examining a little bit.
..but, if I did, I'd major in philosophy. See, I've been working in IT for 10 years now, can code in many languages, can sys admin, can pretty much do anything I need to do from a practical standpoint. The thing is, those skills are nearly worthless in a lot of small/medium IT departments. The skill that keeps me employed is my ability to solve problems, very quickly and without major fallout.
It keeps me employable even if I'm not the best programmer/sysadmin/etc the world has ever seen, because I can pick and choose from the skills I do have to fix random problems as they come up. I usually have success. But, the neat thing about problem solving is that it's a universal skill that you can always get better at it. For example, once you learn a programming language, you know the language, the problem you encounter in becoming 'better' at that language is figuring out how to deal with problems and flush out theories, which takes critical problem solving skills that are better developed in philosophical study.
Anyway. That's my opinion. Science and Philosophy are very related, they just attract two diffrent types of people who don't always overlap.
Two years ago, I started college as a computer science major at Georgia Tech. I hated it. I had a lot of programming experience before I even showed up, so the classes bored me; however, that wasn't what really bothered me. It was the lack of meaning in what I was studying. Don't get me wrong - the curriculum would have most likely turned me into an excellent programmer, but nothing more. Most problematically, my classes focused on practicality at the expence of exploring the subject in any real depth. I was bored not because the classes weren't interesting, but because they followed the same structure: they explored a single neatly carved-out role, and made damn sure never to leave that role. This was excellent preparation for a code monkey, someone who would be happy sitting at a computer day after day, churning out line after line of code. In a way, this is appealing. It would have pretty much guaranteed a comfortable life, with a hefty paycheck. But, intellectually, it just wasn't satisfying. I dropped out. I took a year off, kept programming in order to support myself, and went back to school at Hampshire College, where I'm studying philosophy, among other things. The among other things is key: the way the school is designed, every student gets to decide what they study and how they study it. In short, the school provides a basic, abstract structure, and lets each student fill in the details however they see fit. The most important part is that students are encouraged to combine disciplines. Why? Because there are connections everywhere. We've fleshed out various disciplines long ago; focussing on them, obsessing about them, is only going to hold us back. Now isn't the time to pick an area and focus on it; we've focused enough. Now is the time to focus on other things: on the connections between disciplines. To spend one's time solely within the computer science department or the philosophy department would be equally limiting. There are plenty of connections between philosophy and computer science, between sociology and computer science, between anthropology and quantum physics and religious studies. These days, we're encouraged to pick a job and stick to it. Highly-specialized labor is efficient. But it's also highly alienating, because once you gain even a cursory understanding of other fields you realize just how much you're missing out by wearing blinders all the time. Rather than honing out skills to one particular task that society demands we do (and for what? for efficiency? efficiency at what cost?), we owe it to ourselves to reexamine and reevaluate what society asks of us and how we might best contribute to society. That might mean studying things in a different way than ever before. The goal is to enrich not only our lives, but the lives around us, by exploring the world with undying curiosity.
I think a basic study of philosophy would probably widen most people's perspectives on life and be a generally worthwhile experience. Also, the study of different types of logic and numerical systems has been useful professionally, which could be considered branches of philosophy, though they're probably more commonly found in mathematics curriculums (in my experience, anyway). However, interesting as they may be in their own right, I've never found that Hegelian dialectics or the basics of epistemology have really helped me build distributed data models or network traffic prediction algorithms.
On the other hand, if I were working in, say, AI research, I can see where a working knowledge of epistemology might be useful, so YMMV.
I'm not sure I agree with most of what you say, but you're right about economics being a very useful thing to study.
I majored in CS and got a minor in econ (and in math), and I use the the econ stuff as much, if not more than the CS stuff. I don't know if minoring in it was entirely worthwhile, but going through intermediate microeconomics and intermediate macroeconomics was possibly the smartest thing I did while in college.
Maybe not
Contrary to some earlier replies to this article, philosophy is absolutely not useful for 'answering' any questions regarding the possible nature of AI and its ramifications. The nature of AI will be inherent in the type of AI in question, regardless of what anyone feels/says about it. The only thing that philosophy might be useful for with respect to AI is to help you develop cogent arguments with which you can persuade people to share your perceptions of AI.
The 'skills' you learn as part of philosophy, however, are related to developing internally consistent complex logical 'systems' (for lack of a better word) by carefully designing/choosing a few axioms. Also, you learn the inverse process of 'decompiling' other peoples' arguments to find the primary axioms upon which they're based, which may be much more numerous than the original author realized, and to analyze the axioms for any possibly internally inconsistent/unforseen emergent properties.
Both processes are similar enough to what goes on when developing/analysing software that philosophy is not entirely useless to a software engineer. When using one of the many top-down design/bottom-up implementation development styles, for instance, you need to be able to predict the ramifications of low-level implementation details on higher level abstractions (or even those of lower level abstractions on higher-level abstractions).
Philosophical training is by no means a prerequisite to becoming an excellent software engineer. There are many other more directly relevant fields of study if that is your primary concern. It can't hurt, however, and I've found that the skillsets intersect often enough that it's useful from time to time.
Ethics and MicroEconomics.
Those are the two musts imo.
A number of academics in domains like ethics, speech act theory, and philosophy of mind (among others) have been contributing to journals and having conferences related to computing and philosophy for a good while. I imagine that the interesting discussions on issues like free-will as well as models like functionalism will probably gradually enter the wider computer science curriculum.
I am currently a undergraduate at Muhlenberg College, and have been notably unhappy with their program. What appeared to be a friendly, small liberal arts college when I applied a year and a half ago has so far been rather disappointing. As a matter of background, I should note that my whole life I have been a chronic underacheiver. Grade school was a joke, middle school was tediously easy, and in high school I averaged B's in what were the most "challenging" courses available without batting an eyelash. I've rarely needed to do homework, and have been dubbed "gifted" by both my teachers and my peers. Despite my potential, my last semester GPA was only slightly above a 1 and my return to the college for the fall semester hinges on a last-ditch appeal to the college president to overturn a judicial ruling of a semester's suspension.
Why is this, do you ask? Well from my year's experience at the college, the "liberal arts" philosophy was difficult to find. While the school offers a variety of courses from a vast array of disciplines, so far the courses themselves have been relatively one-dimensional. Even as a math major, there's only so much vector calculus and normal distribution I can take. As a result, I slacked off entirely too much and got distracted with not-so-wholesome extracurricular activities.
Obviously I would be wrong to put the blame for my failures (entirely) on the academic program at Muhlenberg. However, I do attribute some of it to a schism in the way that I prefer to learn and the way that I was taught. Don't get me wrong, I truly enjoy learning. I've have easily spent hours of my time reading Slashdot for the lastest tech "news." Even more tellingly, I'll often get sidetracked by a link to Wikipedia regarding some obscure technology. Many times I'll find an interesting article, and several middle-clicks later, I'll have a dozen tabs open on a variety of tangentially related, yet incredibly interesting and informative topics. As such, I find rote regurgitation of facts and formulas to be wholly uninteresting. Quite frankly, an equation in my calc book is irrelevant to everything that isn't calc. More importantly, that equation will be in my calc book for all eternity, and if I ever need it, I'll know where to find it.
AFAICT, most sciences are only useful as they pertain to other sciences. As a math student, I know that math for the sake of math, as interesting as it may be, is generally irrelevant to anyone but a mathematician (and only for curiosity's sake). It doesn't matter what the deriviative a given function is; what matters is the significance of that finding. For example, without leaving the realm of mathematics, we know that the derivative of a function is its slope at a given point. Similarly, the integral represents the signed area between the function and the axis of the independent variable. On its face, this knowledge is relatively useless. If we travel into the realm of physics, however, we learn that the derivative of an object's position function gives us its velocity, and the integral of a force/distance function gives the amount of work done. In context of physics, math has a tangible meaning.
For those slashdotters keeping score, here comes the ever-insightful car analogy. Suppose you built a car from scratch, and knew everything about its operation as confined to your garage, but never had an opportunity to drive it. Sure you were intimately familiar with engine timings, gearbox ratios and what have you, but were completely oblivious to its operation under normal road conditions. After spending time with the car on a test track, your world opens up to learn how to actually drive the car. But still, were you to be thrown into midtown Manhattan traffic, you would be hopeless. See where I'm going w
I only mod funny =D
Finally, an Ask Slashdot question I'm qualified to answer! My undergraduate CS degree (Harvard) probably wasn't as rigorous as it would have been at MIT/Carnegie Mellon/Berkeley/Stanford, but my Philosophy Ph.D. (Berkeley, doing philosophy of mind with John Searle) was reasonably hard core.
Having worked as a developer for 5 years since finishing grad school, I've been discouraged to find that the points of contact between philosophy and CS are VERY few and far between. Studying philosophy will definitely sharpen your reading, writing, and analytical skills, all of which are (or should be, if you're doing your job right) useful for programmers. But those are all general skills; my knowledge of philosophical theories or history or personalities are, frankly, never a part of my work life.
I can imagine scenarios where the two would be more closely intertwined: heavy duty academic logicians probably work in the intersection of CS and philosophy, and philosophy of mind may have some (tenuous) relevance to cutting-edge AI research. But here's the problem. Philosophy is really about defining terms and asking questions. As soon as terms are successfully defined in such a way that everyone (or most people) agrees on the definitions, and as soon as theories are deemed reliable enough to use in real-world situations, that particular line of inquiry leaves philosophy and is re-branded as science. (Chemistry and astronomy are two particularly clear examples of sciences that started out as philosophical topics way back with the Pre-Socratics.) So any "philosophy" that is concrete enough for CS researchers, developers, or sys admins to use would, most likely, no longer qualify as philosophy.
But even if philosphy is not all that relevant to people working in CS, I think it can be enormously useful to students who are focusing on CS. Besides the improved reading/writing/thinking I've already mentioned, the study of logic (which generally falls under the purview of philosophy) is a good thing for CS majors (though even it is less directly relevant to programming than you might imagine), and it's good to get practice in questioning the definitions of fundamental terms in any field (which, again, is what philosophy is all about). And of course, reading the work of people like Turing and Godel is crucial to understanding what computers can do, what their limitations might be, and how they might be fundamentally different (or similar to) human minds. But those are not areas that professional developers are likely to spend any time thinking about when their main concern is cranking out another 500 lines of Java before lunch. So I'd encourage CS students to study as much philosophy as they can in order to become smart, thoughtful, well-rounded people, but not to expect to use the content of their philosophy courses all that much once they're in the working world.
A final caveat: there are vast areas within the philosophy landscape that are completely irrelevant to programmers as programmers, though may be relevant to programmers as human beings. Ethics, aesthetics, political philosophy, all of continental philosophy (think Sartre or Heidegger or Derrida) fall into this category. There are, of course, many more.