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.
Ummm... Guys?
I think the kind of enlightenment you get from philosophy is not the kind that is ICCCM compliant.
MTW
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.
The Halting problem is one of those ideas that philosophy can help analyze.
Also discussions of how intelligent a machine is where philosophy can help answer pertinent questions.
Philosophy combined with psychology might also help in the field of software engineering, that is, how should the programs we write be meaningful to developers and users of the software.
If philosophy doesn't help answer those questions, then the ability to think about problems is always a useful skill to have.
..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.
While a class on CS and philosophy would certainly be appreciated, it is probably a rare find. So why not do what a lot of others have done and just roll your own so to speak. Take classes outside of CS(which is something that could not hurt anyway) and use them how you see fit. I think you can even get it to count for credit if that is what you are worried about. I had to take 6 credits outside of CS on an *approved list* myself, and it seems that most advisors seem pretty flexible and as long as you can make a compelling case for it(and of course as long as you are not flunking your other courses).
Have fun and remember, study as many topics as you can while you are in college. You will probably be doing CS stuff for the rest of your life, but you may only be able to easily take a class on film theory or comparative literature while you are an undergrad...
Monstar L
From Wikipedia:
Philosophy is a lot more logical than most people would assume at first glance.
A couple of years ago this thesis was published at the CompSci department in Lund. It's 200 pages about component-oriented programming, segueing into almost a thousand pages about the moral and ethical ramification on computation in general. He did pass, but only just; many people thought it really was two theses in one, and that the philosophical part really should have been presented at the philosophy department, not in computer science.
Trust the Computer. The Computer is your friend.
Alan Turing devised most of the theoretical basis for computers in mathematics, but all the modern computers that we use are called Von Neumann machines for a reason.
Listen p*ssy. I'm sure your the same homo that posted earlier about alf's boner and you just want to remain anonymous fo
This is what The Man said about philosophy:
"Philosophy consists very largely of one philosopher arguing that all other philosophers are jackasses. He usually proves it, and I should add that he also usually proves that he is one himself."
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.
Some philosophy teacher will surely turn this into a course. I imagine GT, where EVERYTHING is subjugated to engineering needs, could be one of the first if it's not already there. You could make it one of your required electives. Of course, a real philosophy person will rain on all our parades by telling us that this is already a class offering under a different name and those who change the name are pandering.
Now, who the hell are these people? Abandon all hope, ye who enter:
Please, God, make it stop.
Friends don't help friends install M$ junk.
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
I have a bachelors degree in Philosophy. I was going for my Masters when one of our PHD candidates (total 9 years in college combined) had to get a job at the Piggy Wiggly because she had no skills. Then I switched to computer science. I later dropped out of CS and went into professional IT, and haven't looked back.
The thing that interested me most about both studies is that they seemed to be both sides of the same coin. Not because of liberal arts vs. hard science, but in the way they had to deal with reality.
In a nutshell:
Philosophy tries to develop, enumerate, and proof basic concepts of existence. Platonic Forms, the monads, and Descartes dialouges are examples of literally trying to get the basic concepts of reality and use them to build bigger structures. Eventually, you could prove more and more complex ideas based on those basic priniciples, which hopefully corresponded with reality.
So, Philosophy tries to take reality and break it down into its individual elements.
Computer science taught about programming languages, algorithms, and circuit design. From those basic parts, we were to make mini CPUs, applications, and so forth. Then we would learn about Artifical Intelligence, and the issues with that.
Computer Science starts with the basic blocks, and tries to create 'reality' from it.
So, there is some curiosity (to me) in that one of the hardest issues in Computer Science is how to create 'intelligence' from basic building blocks. Then, one of the hardest issues in Philosophy is to derive the basic building blocks out of 'intelligence'.
He said that before the days of computer science degrees, there were two disciplines that were sought after when it came to finding programmers.
#2 was mathematicians.
#1 was philosophers.
Enough said.
"No problem. I have the capacity to do infinite work so long as you don't mind that my quality approaches zero."-Dilbert
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.
What is objective knowledge for a given science? How do you demarcate what is a meaningful statement in computer science and what is meaningful in biology? How do you allow knowledge from one field to be objectively considered by another field with a different domain? These are meaningful questions in the domain of philosophy. All objective knowledge relies on logic, Gödel and Tarski showed us that while we can find truth in a domain, we can never be certain that the truth we have found will not be falsified later. There is no certainty to objective knowledge, no justification. At best, we can determine meaningfulness and test meaningful statements for falsity content. That was the innovation of Popper and the Critical Rationalists.
The goal of philosophy is methodological correctness, logic is at the heart of philosophy because that's how we describe method. Philosophy can only explore what the limits of lawfulness and order are. Without the ability to demarcate meaning, we cannot determine order. Why we seek lawfulness and order is a metaphysical question, it cannot be answered by philosophy, thus making philosophy incomplete and paying the price for objectivity.
Since computers are all systems of logic, we can use philosophy to determine what each system's limitations are and how differing systems can interact. Take the theoretical in computer science, how did we develop quantum computing? How will we integrate it into the rest of our systems? As we search for innovative ways to look for solutions to these questions, philosophy guides us, by maintaining methodological correctness, forcing us to maintain the integrity of the identity we have chosen.
Ethics is not philosophy. It is the application of objectivity to another set of goals, a different domain. If ethics is the domain of how to best get along with our neighbors and avoid creating unnecessary confrontation, then we can apply methodology to determine which statements are meaningful within this domain. For instance, Richard Stallman is a computer ethicist. His goal is to provide a particular ethical view of how we should integrate computer systems into our lives. Some statements are meaningful to these goals and others are not. Out of the meaningful statements, I can test which are most efficient at reaching specific goals, such as those of the FSF. I may not agree with those goals, I may oppose those goals, but since Stallman and the FSF have stated what their goals are, I can properly scope a domain. Once I understand the domain, I can test proposals and conjectures to determine which are most efficient towards reaching those goals. This is how objective knowledge grows, our motivation is always metaphysical. We cannot rationalize or justify inspiration. By understanding this, by enforcing methodological separation, we can concentrate on growing objective knowledge about our metaphysical goals. There is no natural imperative to understand the quantum structure of matter or to understand biological systems. We simply find these things useful, fulfilling.
If it is philosophy that you want to study, then study Critical Rationalism. The works of Popper, Bartley and Miller should keep you busy for a while and give you a thorough tour of just about everybody, as they've managed to falsify quite a few names in the summary. If it is ethics you are interested in, I can really only recommend who to avoid. Those who hide from criticism are unethical. Plato and Hegel are primarily useless. Both hid their ideas from criticism, attempting to fool the reader into prematurely aborting their attempt to rationalize their proposals. Plato taught 9 tyrants, Hegel was courtier to his own and the father of the Nazi lies. I would also avoid the spawn of these liars, Leo Strauss, Barth and Schaeffer. All of these have either embraced the Noble Lie or Nihilism. Either path is a cover from criticism; nihilism absurdly denies the capabilities of criticism, while the Noble Lie invokes paradox of the liar. One can never determine when a liar is inserting chaos into order to avoid criticism. Integrity is indispensable.
Arrogance is Confidence which lacks integrity. -- me
I think the comments here are very interesting. One common theme seems to be the importance of ethics in, for example, determining the normative quality of our technological advancements. Such thinking is certainly important, but I don't really consider it deeply philosophical -- philosophers of ethics are often actually studying meta-ethics (the study of the practice of making normative judgements, or of what normative -- i.e. good and bad -- judgements might mean) and when they're not they are far more often studying the general principles behind good and bad judgements (does good mean creating the most pleasure?)) rather than applying rules to determine the goodness or badness of any particular situation.
Of course, other parts of philosophy (besides ethics) have been cited here -- logic is one of the obvious ones of course: as a Philosophy major interviewing at Microsoft I was frequently asked what Philosophy had to do with Computer Science and I cited philosophical logic and how Russell's logical discoveries are the basis of NAND gate chip design. But I'm also interested in the application of epistemology to AI (the cognitive science side in particular).
But I think the connection between philosophy and computer science ought to be made more generally than attempting to apply specific philosophical results to problems of computation. (I certainly don't deny that such application can and should be done -- and the McCarthy quote cited above suggests several promising lines -- but I think it should not be the only focus for philosophy's use in computer science.) My view of it (as a philosophy major about to start a job in software development) is that the methods of philosophy rather than the results will be useful to me in computer science. Much of philosophy, the actual practice of making arguments, explaining phenomena, drawing conclusions is I think very similar to computer science, which I frequently see as just the abstract description of a problem.
An example: sorting algorithms aren't just practical ways to achieve a goal, the algorithms are descriptions of what it is to sort something: sorting requires a certain number of comparisons, which it can be shown is on the order of n log n. That seems to me an instance of philosophy -- taking a phenomenon, investigating what it means abstractly and precisely. And I think (and hope) that much of real-world software development (not just the deep theory around algorithms) is the same sort of thing -- a precise and abstract description of a problem: from determining requirements from the user to writing the code for particular algorithms. Software developers may not be keeping copies of Plato or Russell on their desks for regular reference, but I think a philosophy background is a great help.
Saul Kripke who is a logician and a philosopher made major discoveries in Modal Logic which is actively being researched by computer scientists. But Kripke also did important work derived from his work in modal logic which was philosophical in nature. Such as philosophy of mind, metaphysics of necessity and an argument against private language (Kripkenstein).
The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
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.