Why I Love Computer Science
cs.caltech.edu
cs.caltech.edu
> [A]ny realistic mathematical proof will leave out a great many steps, which are considered to be the "required background knowledge"
Computer science papers are different how? Computer science != programs!
> [T]he inference rules are not always specified accurately, or are not believable if they are. This is why you will sometimes read a mathematical proof and say "I understand the reasoning, but I just don't buy it"
I think this guy just isn't too hot at mathematics. Omitting a trivial step (or domain specific knowledge) is not a lack of rigour, but a courtesy to the reader. The details can always be filled in cleanly. If you ever see a modern mathematical proof that is accepted by all mathematicians, but you don't "buy it", then I can assure you that it's you that's at fault, not the proof.
Oh, and computer science papers never leave out trivial steps or assume domain knowledge? Not the papers I've read. Once again, CS != programming!
> This is reminiscent of Whitehead and Russell's Principia Mathematica where hundreds of pages pass until the authors can prove that 1 + 1 = 2.
Surely Principia is a reductio ad absurdum of the argument that everyone should always spell out all the steps!
A very astute comment. In principle, mathematical proofs are supposed to be every bit as completely described as computer programs, but perhaps not as explicitly expressed. Edsger Dijkstra used to refer to mathematical proofs as a model for computer programming.
That's irrelevant. The guy's argument is that computer programs don't leave out information: "If all this information isn't available in some form, the program simply will not work, as the interpreter/compiler will not know what to do with the program. This forces a certain intellectual honesty on the process of executing a program; nothing can be left unspecified."
Clearly, computer science papers are written by humans and will typically lack rigour, which has both advantages and disadvantages. Human communication can contain bullshit, but you can't bullshit a computer.
Similarly when you are writing a program you don't know the exact inner workings of every function you call. You should, however, be confident that they work and that you could understand them if you need to. The source for a computer program omits plenty of contextual information thats needed to make it meaningful. The only completely unambiguous interpretation of the program is the machine code which is analogous to the proofs in the principia mathematica. Its nice to know how it works in principle but you dont want to work with it unless you really have to.
http://en.wikipedia.org/wiki/Doron_Zeilberger
http://www.math.rutgers.edu/~zeilberg/OPINIONS.html
I'm not saying I agree with that, just that it's not lunacy. Carry on.
There's a difference between using a convenient notation and lacking rigour. If you are always capable of discerning the true formal equations behind a convenient notation then everything is OK. If you can't, or people can't agree on what the formal meaning should be, then there is indeed a problem. The fact that the authors could derive a computational notation that no physicist would disagree with is proof that a lack of rigour never existed in the first place.
I doubt that's true. For example, here's what Piet Hut, now a professor of physics at the Institute for Advanced Studies at Princeton, writes about his experiences with classical mechanics as an undergraduate in his review of SICM available at http://www.ids.ias.edu/~piet/publ/other/sicm.html :
"Soon I went through the library in search of books on the variational principle in classical mechanics. I found several heavy tomes, borrowed them all, and started on the one that looked most attractive. Alas, it didn't take long for me to realize that there was quite a bit of hand-waving involved. There was no clear definition of the procedure used for computing path integrals, let alone for the operations of differentiating them in various ways, by using partial derivatives and/or using an ordinary derivative along a particular path. And when and why the end points of the various paths had to be considered fixed or open to variation also was unclear, contributing to the overall confusion.
Working through the canned exercises was not very difficult, and from an instrumental point of view, my book was quite clear, as long as the reader would stick to simple examples. But the ambiguity of the presentation frustrated me, and I started scanning through other, even more detailed books. Alas, nowhere did I find the clarity that I desired, and after a few months I simply gave up. Like generations of students before me, I reluctantly accepted the dictum that `you should not try to understand quantum mechanics, since that will lead you astray for doing physics', and going even further, I also gave up trying to really understand classical mechanics! Psychological defense mechanisms turned my bitter sense of disappointment into a dull sense of disenchantment."
But that's obviously not what happened. Physicists were always capable of making exact calculations and predictions from Lagrangian mechanics. SICM contains no new theories, theorems or proofs, just a more explicit way of representing old ones. Nothing new was discovered and no old notions were clarified. Instead, they just found a better way of teaching mechanics, one that didn't rely on the implicit knowledge that masters of the subject already possessed. They were only capable of doing this because Lagrangian and Hamiltonian mechanics were well-defined in the first place. If they hadn't been then they would have had to advance a new theory of mechanics to replace them, rather than just re-presenting an old one.
This is just funny:
"I think computer science has a tremendous amount to offer the fields of logic and mathematics. Specifically, I think that requiring all formulas to be executable by a finite, deterministic system (a computer program) could lead to a great increase in the level of rigor of these fields, would make it easier for students to learn existing results, would make it easier for practitioners to develop new results, and might possibly suggest whole new approaches...*
Also he keeps refering to computers as finite. I can only assume he means in a physical sense that there are a non-infinite amount of atoms making up his CPU.
I suppose I should critic his argument seriously but it's just too far away from any actual reality.
> Also he keeps refering to computers as finite. I can only
> assume he means in a physical sense that there are a
> non-infinite amount of atoms making up his CPU.
No, this is meant as 'having a finite number of states' (dictated by finite memory, finite number of registers and so on) - as opposed to, for example, a Turing Machine [which has an infinite number of states].Is he a computer, true or false no other answer? I think he's fooling himself, what happens if quantum computing becomes common and a result can be a 1, 0 or 'maybe'?