Philosophy of Computer Science [pdf]
cse.buffalo.edu
cse.buffalo.edu
The author is William J. Rapaport, emeritus professor of computer science at SUNY Buffalo: https://cse.buffalo.edu/~rapaport/
Wikipedia bio: https://en.wikipedia.org/wiki/William_J._Rapaport
Trivium: WJR is the author of "Buffalo buffalo buffalo buffalo Buffalo buffalo".
There've been some earlier submissions, few with much discussion, though from 2015: https://news.ycombinator.com/item?id=10388603
Also relevant, the "Philosophy of Computer Science" article at the Encyclopedia of Philosophy: https://news.ycombinator.com/item?id=16451072 https://plato.stanford.edu/entries/computer-science/
... earlier submissions ...
The front page of the PDF is dated 6 September, so this most likely is some newer revision.I suspect a periodically-updated LaTeX draft with an auto-date macro.
From the preface:
This document is a continually-being-revised draft of a textbook on the philosophy of computer science. It is based on a course I created for the Department of Computer Science and Engineering and the Department of Philosophy at the State University of New York at Buffalo.
The latest (August 2019) edition significantly updates/adds chapters 5 ("What is Engineering") and 20 ("Computer Ethics II: AI").
You're off by a couple of buffalo :)
https://en.wikipedia.org/wiki/Buffalo_buffalo_Buffalo_buffal...
Man, he's leaving no stone unturned.
- Reading this on a tablet works pretty well (9" or larger). I find PocketBook Reader is quite good, FBReader is another option. Both are far more functional than a basic PDF reader.
- You could print the text directly and bind it at virtually any print shop.
Seems to be more relevant.
Both are highly worthwhile.
The first four chapters (and preface) largely answer this question. Though of course, the answer is what the entire book is about.
Computational Artifacts: Towards a Philosophy of Computer Science, by Raymond Turner.
When you publish, I'll be happy to purchase a copy.
But when I read stuff like this I question the veracity of it all. The very first section seems to be talking about "science" and "computer science" then it goes on to talk about ethics... Is this really legit? I mean what "science" means and what "computer science" means is more of a english language problem then some fundamental aspect of reality... and ethics are just rules that govern human behavior and the human condition... does this really need to be merged with the formal fundamentals of computer science? It's like saying english literature is part of quantum theory or that morality is intrinsic to classical mechanics.
I'm curious but as an outsider looking in... it looks like a load of BS. Any top tier theoretical mathematicians or hardcore scientists have anything to say about philosophy? Or even the philosophy behind computer science? Is it worth reading this stuff?
In a way, it is the fuzzy wiring that underlies most other disciplines, that you need to poke around in when you run into longstanding, or seemingly intractable problems in what you're trying to do above. See for example: https://news.ycombinator.com/item?id=20905801
Computer science as a discipline like arithmetic has nothing to do with the human condition, it is just an aspect of logic. If philosophy purports to be more fundamental than logic or computer science why does it go on to talk about liberal arts topics of things like ethics or religion? It seems jumbled and disorganized and lacking of formal rigor.
Think about it. To use the analogy of arithmetic, the more fundamental theory is number theory. It dives into a lower level description of arithmetic. But then suddenly it starts talking about ethics and the moral implications of using arithmetic on human society. Is this social studies or formal logic?
IF you can see how the question above doesn't force mathematics to be part of ethics. Then that same line of reasoning will help you realize how computer science is the exact same thing. The science of computing is entirely different from the application of computing (aka programming) side of it.
If philosophy purports to be a lower level description of mathematics/computing... why is it talking about ethics? The heart of computing relies on axioms, anything lower level then that would be an examination of what is an axiom? and what is logic? Not human rights.
Then, people confuse ethics of what you do with science with the "ethics of science". It doesn't make any sense. But even if it's a thought contraction, it's imprecise enough to warrant a debate.
The same is said of computer science. What you do on the job as a software engineer, is more engineering and applying math and programming in a human activity. The disciplines themselves, algebra, category theory, topology, calculus, number theory, computer science are all devoid of ethics or morals.
Combining ethics and science is like combining church and state.
What does the quantity one have to do with a human? Nothing. The only thing you are doing is giving it a name. "One" The categorization of mathematics is just nomenclature. We choose the name and categorizations of something that already exists independent of the human experience.
I think that the three main areas of philosophy are being, ethics, and knowing. Of those, ethics doesn't apply to CS (until you try to make a program that does something), but that doesn't make all of philosophy illegitimate. It makes one branch of philosophy less applicable, that's all.
It's a liberal arts thing.. opinionated ideas on how to behave well suited for a thick book with lots of prose. Very hand wavy and requires cultural context.
Science and mathematics on the other hand is more of a description of reality as we know it. It is a logical and cold description that is devoid of bias and the focuses on reality as it is not reality from the human perspective.
The two fields don't really fit together, but both are important. When you drop an atom bomb, science says "E=mc^2" while the liberal arts on ethics says "genocide."
Philosophy feels like a relic of the past. A lot of mathematics and modern science comes from it but it unfortunately includes a lot of more artsy human centric branches of study like religion and morality. Philosophy comes from a time when people thought humans were the heart of the universe and that deep thought on the nature of reality needed to include things humans felt were personally important.
We now know that we humans are a byproduct of natural selection and we're nothing special living on a tiny speck of dust at the edge of the galaxy. Our existence has little effect on the ultimate fate of the universe, the galaxy or let alone the solar system and as such the deep musings on the nature of reality must not include our own experiences in ethics or religion as part of the discussion.
Ethics includes systematization, description and criticism of moral thought, although I'll admit that, in the real world, it often doesn't draw on science as much as it should.
You might find this interesting for instance:
http://emilkirkegaard.dk/en/wp-content/uploads/Joshua-D.-Gre...
Why do we need to combine "Ideas about society" with "Newtons laws of motion" is all I'm saying. One is a liberal art, the other is a formal theory.
There are 5 fundamental branches of philosophy that attempt to answer 5 questions.
What is real? (Metaphysics) How do I know? (Epistemology) Who/what am I? (Human nature) How should I live? (Ethics) How should we live? (Politics)
In modern society we have taken to answering the question of "how do I know?" by the scientific method. Well, a lot of us have.
Think about recently how the replication crisis has affected our philosophy. We have started to question the methods efficacy in certain disciplines and we are going back to the drawing board. Back to finding a way to answer the question "how do I know?"
Developments in philosophy form the bedrock of daily life. Science is included in that.
Metaphysics sits at the root and all the other branches are abstractions on top of that. Like really high on top and centric to the human experience. It's as arbitrary as putting "dog nature" in place of human nature, what justifies human nature to be the foundation as opposed to "dog nature"? Nothing. Hence my argument for why this grouping and the field itself seems illegitimate.
Everyone has their own answer to those questions. That's their philosophy. The field itself catalogues developments in which answers have been a) novel and significant and/or b) become widely accepted at some point in history.
Philosophy fails on this count and thus I would argue fails to be a foundational framework for Science, math or logic.
I would argue that science, math and logic serve as foundational frameworks for religion, ethics and the rest of the soft sides of philosophy.
Before the age of enlightenment, yours was not a commonly held viewpoint. After, it became to be acceptable and then accepted. That's philosophy at work.
I don't think of it as a foundation per se. It's more like a continuous process that carries out over time as individuals interact, the result of which only a small portion is obviously visible with the rest going mostly unnoticed.
If you say it's not a foundation, then we are in agreement.
The aggregate output of philosophy as a process for negotiating a shared understanding of "what is true and what to do about it" is the foundation upon which societies thoughts rest. If that makes sense?
They are quite linked though. And there isn't any escaping philosophy regardless of you feel about it. Re: the replication crisis - we have found that the very foundation we thought was Rock solid doesn't appear to hold for the social sciences. The "how do we know?" has fundamentally come in to question and we find ourselves back at epistemology searching for another suitable way to be sure about things.
But I agree it's not a foundation for science per se. Just a foundation for forming belief systems. Philosophy is capable of producing all kinds of nonsense. And indeed it has and does all the time.
Can't agree with this. Nothing can be verified to be true. The undertaking is impossible. We can only identify correlations to a degree and causation to a degree.
>we have found that the very foundation we thought was Rock solid doesn't appear to hold for the social sciences.
Science is known not to be rock solid. It is based on statistics which is based on the theory of probability. We use probability to establish correlation to a degree and causation to a degree. But this is based off of the assumption that the set of axioms and theorems from probability theory applies to the real world. It's self referential and unverifiable: By probability, probability is correlated with reality.
The replication crisis is not a philosophical problem but a problem with bias. Research studies are choosing biased samples and making biased observations. We have no indication as of yet that it is pointing to some fundamental flaws in probability.
This is the limit of what we can do. If philosophy purports to go deeper and further, I'll have to disagree.
https://en.wikipedia.org/wiki/Liberal_arts_education#Seven_l...
If anything, the people who design the structures of life have the most ethical responsibility of anyone. We're the ones who make it possible, and who have the strongest understanding of what it is we're creating. Personally understanding the full ramifications might not be easy, with so much else to know, but certainly our field as a whole should be working to understand them. To say we have no ethical responsibility because we're scientists and mathematicians dealing with the technical problems is to say Frankenstein had no ethical responsibility when creating his Monster.
Pure computer science and pure mathematics have axiomatic foundations that are formally scoped and defined. The application of mathematics and computer science via engineering has ethics, but computer science itself is devoid of ethics just like algebra is devoid of ethics.
Cryptography is a rather "pure" form of math, yet it has major implications on society.
The thing with computer science is that people are just confused because they use it as a more lego like artistic endeavor rather than a mathematical field. The reality is... Computer science is really just mathematics with axioms rooted in two isomorphic primitives:
Lambda calculus and turing machines.
So for me the math professor, who teaches pre-medical students frequentist statistics or the mathematician who creates yet another adhoc frequentist test for some specific situation, is doing something bad according to my ethics. They are making the world a worse place because of the particular kind of mathematics they choose to do.
I think the bayesian way is more beautiful. Does that mean now I have to insert beauty into the description? No.
Point being: categorization is fuzzy. Ethics, beauty, etc are fuzzy but foundational and applicable to pretty much everything - like any other perspective. Denying them a place in CSC/Math/etc because they're seen as too "hard science" is a dead end road, because meeting your own bar of using only logical truth while still expressing anything useful about a subject is (probably) impossible - which is the general consensus in modern philosophy (as I understand it).
Usefulness has nothing to do logic or mathematics. Math and logic is statements, axioms and theorems. Usefulness is an arbitrary judgement that depends on context. It's "fuzzy" like you say.
Math and logic aren't fuzzy, ever. Categorizing things that are fuzzy and aren't makes sense.
But I wouldn't even be that generous. The amount of inherently human decisions that go into the design, representation, learning, educating, and yes - categorization of math is far from a perfect un-fuzzy logical utopia. We inherently add our own human ideals of what we consider a beautiful (elegant, easily understandable) formula/proof/concept/whatever, and every time we do we affect the perception of subsequent discoveries. Any computer scientist who has developed a sufficiently complex system knows that it is is impossible to make something "purely rational" without making arbitrary categorizations, which another programmer might do completely differently to produce a similar result with far-reaching effects down the line. Likewise, Math as we know it is taught the way it is because of the specific way it formed historically and the way it's best understood by its human students. The fuzziness runs deep.
Maybe you want to escape to fundamental concepts with rigorous self-consistent definitions only, with no applicability to the real world. Just cold hard formulas - the "real math". 1+1=2. Well then I hate to break it to you, but unless you have mathematical definitions of elegance and complexity to replace the human ones, you have no choice but to treat every tautology the same. Even selecting which proofs and axioms we care about is inherently human. So 1=1 and 46332688=3+211+7774+... Oh, and forget base 10... Or for that matter, why we even choose to define particular operators... Or explaining the proofs of any of this in english without some self-bootstrapping rigorous definition of the proof language...
My point is just that to completely remove the human fuzziness you have to cut out a LOT. You have to sacrifice understandability, brevity, and conceptual usefulness, amongst many others. And even if you could make a perfect self-bootstrapping logic box (something famously proven to be impossible by Godel Esher Bach - no system can perfectly define itself, it can only be defined by its parent) then there's still the problem that whatever the discoveries of your self-contained system are, they'll still have an impact on the rest of the world - which we then judge the effects of through Ethics.
Sorry, but truly escaping the fuzzy swamp of human culture is pretty damn tough. Maybe it can be done, but I doubt it. All language is fuzzy, all understanding is fuzzy, representation is fuzzy, the choice to define one thing and not another is fuzzy, Mathematics and Computer Science as educational subjects are very fuzzy still (even as much as they believe they aren't). Fuzziness is the baseline, and the study of that fuzziness is Philosophy. Maybe there exists some pure kernel that is strictly without human fuzziness, but that remains to be seen, and even if it was - it would be very different from the subjects of Math and Computer Science as we understand them today.
First off categorization and naming is a human endeavor. The logic that lies underneath is solid and independent of the nomenclature or any formal rigor needed to define the names. We understand math through using words and naming as tools, but the words themselves do not define the underlying structure itself which is as far as we know: Not Fuzzy.
Second our choice of what axioms and theorems to study don't make anything fuzzy. We are simply choosing a subset out of a set of all possible choices in which the subset remains not fuzzy. OUr arbitrary choices are human, but the logic within the framework of our choices still apply.
Godel Escher Bach is just a book. The incompleteness theorem you are seeking comes from Godel. Not only can a system not define itself, it cannot be fully provable and internally consistent at the same time. This does have a lot of interesting things to say about logic BUT it does not make mathematics or logic fuzzy and opinionated.
Fuzziness is not baseline. The baseline is unknown, but what we do know has been consistently observed to be not fuzzy.
Let's be clear, by fuzzy we mean things like ethics and religion. Things that are based on opinion and exclusive to the human experience. None of this type of fuzziness applies to science or math or computer science.
Sure, the underlying structure of math and computer science may be entirely logical. But to delve at that, we develop a language of terms and a culture of understanding that is inherently human and inherently fuzzy - which yes, connects to things like ethics and religion. The choices in how we study logic, which areas we care about, how we represent it and how we use it put our fuzzy cultural signature all over it - which is rife for study.
Now, can math and logic be defined without some arbitrary cultural signature? Maybe. But I've yet to see it, and as I've pointed out it would be quite hostile to human understanding - at least until we could define human understanding in logical terms. Also there's the no-self-defining Godel thing (sorry, just meant "made famous in Godel Escher Bach") which I'm pointing out might also imply that you can't really define logic without using our inherently fuzzy language and understanding as a parent.
The baseline I'm talking about is our human understanding (or ability to understand) - which is inherently fuzzy. Fuzzier still when we pass it on through education and it picks up all these unique cultural characteristics.
The baseline you're looking at is the foundational rules of how logic and mathematics work in a defined system, which we can glimpse at through our cultural lense.
Now, can your baseline exist independently of mine? Does it exist at all? I do not know. I certainly won't try to challenge that here - though I know it has been argued before. What I do know is the educational subjects of Math and CSC as they stand today are highly enmeshed with the fuzziness of human historical understanding, rife with choices that are based on human opinion, and pulled from particular moments in time and cultures. Ethics would study those choices and how they affect society. Religious studies might conclude the culture being created has its own similarities to worshippers of the past. We are unfortunately inescapably enmeshed in culture, and the choices we make inherently affect everything else and leave us open to alternative interpretations - we can't just claim we're free of Ethics because we (try to) study foundational logical rules without injecting human opinion. That's simply not true.
Though personally, I believe you're right and there is something unique and universal underlying logic - which probably reveals a fundamental property of the universe. But I think we have to admit at least that there's a strong observer effect where trying to look at it inherently imprints our fuzzy cultural understanding on it - which unfortunately is the only state we have ever really known as a species.
It only makes sense to discuss what the majority agrees to observe consistently and assume that, these observations are true independent of observation.
the basic tools and methods we have of investigating mathematics is designed for human minds. what are mathematical axioms if not the attempt to discover the point beyond which human cognition can't go? if you truly believe that there is a mind-independent mathematics "out there", and you believe that humans are really that insignificant, then you must believe that the totality of mathematics is vastly beyond the reach of human minds. so then the mathematics that is available to humans as of today must be a very small part of mathematics in itself, and it's not a coincidence that we find it so useful.
Philosophy is about understanding patterns, habits, and traditions of thought. You can look at the patterns from different angles, one of which is ethical.
If you don't think at this level, math just "seems right because it is" - obviously and self-evidently.
But that's exactly why you need philosophy - to understand why that's a superficial misunderstanding of how math works, how the foundations of math aren't as stable as they seem to be (see also Hilbert's Project), why empiricism cannot possibly be genuinely objective and only works up to a certain point, and why even something "obvious" like the concept of True/False is contingent and questionable.
Philosophically, any sentence that starts with "Obviously..." or "It's completely clear that..." turns out to be the product of a cultural habit of thought, not the absolute and immutable objective truth that it pretends to be.
If you have no experience of this you're going to find this hard to understand, and you may even deny it outright.
But that may be taken to suggest that you haven't learned to think outside the usual socially-defined norms, and therefore can't imagine anything outside of them - which is not in any way the same as having infallible knowledge that there is nothing outside of them.
My guess is historical reasons. People in the past could not delineate the dichotomy between the human experience and hard logic, but they saw a deeper meaning in many topics. Hence philosophy is a basically a relic from the past.
That said, there are logical positivist philosophers that believe reality is consistent with a hard logic view of the world, and thus it is foundational. They are a minority these days as far as I know - falling out of favor since... Kant? (I forget my history).
But no, philosophy is not a relic of the past in the sense that it has been surpassed by logic/science/etc - not til those can lay claim to truth better than a bunch of old Athenians. Jury's still out.
_People_ have or don't have ethics. And this is different story altogether.
Obviously, the boundaries are blurred. The study of formal logic straddles both Math and Philosophy. Lots of fields were once under the domain of philosophy before they branched out - Leibniz, Descartes, Russell all made important philosophy contributions as well.
But ideas do tend to filter through eventually, even if most scientists aren't themselves aware of where they came from.
For students (and this work is aimed at a university philosophy of comp sci course) the exercise of thinking through (and walking through) definitions is also useful.
Philosophy can (and does) get stuck in the weeds, and there's a great deal of philsophy (much of the religious bits, though not all, and certainly others) which was simply based on bad premises and/or logic.
The value in revisiting it is several-fold.
- You can recognise which present-day discussions are actually very-well-trod ones in the history of philosophy. Whilst some of the questions may indeed be unanswerable, identifying some of the more glaring errors of reason or fact can at least move you to more interesting areas of disagreement.
- Much of philosophy provides tools for thinking through questions. Aristotle's Organon (and Bacon's Novum Organum) literally means (new) tool.
- The history of philosophy says much about how we ended up thinking and/or knowing what we do, and where we (very frequently) got mislead along the way. Even the false turns are useful to know.
- All of Boolean logic grew out of philosophical logic of the 19th century. An obscure text that happens to be one of the handful (literally five or six) cited by Claude Shannon in his foundational work on information theory. (Shannon's work is remarkable on numerous counts, including not only founding virtually an entire new science, but reviving an all-but-dead niche of philosophy, and having scarcely any references.)
- The ethics of tools and their use is ultimately much of what they're all about. That and their unintended, especially negative, consequences (a topic not touched on significantly in PoCS so far as I've read).
- Philosophy also provides ontologies and taxonomies of subjects and areas. These are useful for understanding them, and help one grasp the landscape. Realising that as you've been driving down the road, the trees you've been seeing are actually all of the same species, or that the road is a loop and they're actually the same tree, is useful. Ontologies also lead to identifying characteristics, capabilities, and limitations of tools.
- There are a wealth of references given, most of which should prove highly illuminating and/or significant. Given the perennial HN question of "where do you find material to read", I'd dance and wave and whistle and whoop and say HERE!!!
- There are a tremendous numbers of models and myths surrounding all human endeavour. Philosophy helps identify the valid and invalid, separate wheat from chaff, and sort gold from bullshit. Again, the tools, models, background, and ontologies here help with that. Given the copious gobs of bovine matter and fad-driven-development in CS, IT, SV, and HN, you'll be ahead.
I've been doing this myself over the past few years, by the way.
- Augustus DeMorgan
- Rudolph Carnap
- Gottlob Frege
- Kurt Gödel
- George Boole
Historically, philosophy has been the home of the study of logics, until there was a shift towards faculties of mathematics in the 19th century. - This is a very typical trend. Newton was a philosopher, his groundbreaking work basically created a new discipline.
Generally I would argue that the strict separation of disciplines is hindering understanding. Fundamentally, all studies are related in some ways, and I would argue that with the correct mindset, you can even learn valuable lessons in computer science through the study of literature or history.
Shakespeare is doesn't belong in a computer science textbook anymore than ethics.
I haven't read the relevant part of the book yet, but it seems like he's using the Ethics of AI as an example for exactly how Ethics can be relevant to the field of Computer Science, and also as an example on how philosophers actually work.
In a course called "Philosophy of Computer Science", this seems quite reasonable.
Ethics in philosophy is reasonable which leads to my main point. Is philosophy legit? Why is philosophy purporting to be foundational then suddenly talking about ethics?
Philosophy is pretty much as legit as the people writing the papers and the others peer-reviewing it are. The process obviously isn't empirical, instead you have to very narrowly define your axioms, and then in small steps argue from these axioms until you are at a final, logical conclusion. If your axioms are wrong, then the paper doesn't work. If your arguments are illogical or ambiguous, a peer-researcher will draw holes in it.
If I would compare the process with my own field, CS, I would probably compare it to system design. There exist a few fundamental axioms we have to follow, and a few things we want to optimize for. In a lot of cases, through argument it becomes clear which is the best method. In other cases though it is either unclear, or dependent on the priorities you set yourself.