5 ms·
Please explain how Dijkstra's _Go To Statement Considered Harmful_ (see https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf https://homepages.cwi.nl/
by btilly 5y ago
Please explain how Dijkstra's _Go To Statement Considered Harmful_ (see https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p... for the text) is part of mathematics. Then Knuth's famous reply _Structured Programming with Go To_ (available at http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.6084&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103...) and then the much later follow-up at https://cis.temple.edu/~ingargio/cis71/software/roberts/documents/loopexit.txt https://cis.temple.edu/~ingargio/cis71/software/roberts/docu..., _Loop Exits and Structured Programming: Reopening the Debate_.
When you've disposed of those, read the less well-known paper _Programming as Theory Building_ by Peter Naur (see https://pages.cs.wisc.edu/~remzi/Naur.pdf https://pages.cs.wisc.edu/~remzi/Naur.pdf for a link).
Are there computer science papers that could fit within mathematics? Yes. Are there important computer science papers that clearly don't? Also yes.
- revnode 5y agoI don't think there's necessarily a disagreement here. You're talking about "how" to approach problems and he's talking about "what" the problem space is.
- amelius 5y agoThose papers you mentioned are closer to the field of Software Engineering.
- hnfong 5y agoThis is basically the True Scotsman argument.
- btilly 5y agoOn what basis do you claim that software engineering is not part of computer science? Those papers were all written by professors of computer science and published in journals of computer science. All were cited many times by other papers written by other professors of computer science in other journals of computer science.
- Delk 5y agoSoftware engineering is taught as a part of the field that's called computer science, but the original question was about whether the field called computer science is actually a science. I guess the difference in that regard would be that (software) engineering doesn't necessarily follow the formal scientific method of formulating a hypothesis and then testing it experimentally. That would, in some sense, make it distinct from science. The same would practically apply to many areas in computer science that are studied experimentally, not just software engineering. To elaborate on that a little, (software) engineering does build on experience and empiricism, as well as analytical thinking, but in practice it may be more in the form of "lessons learned" than in the form of hypothesis testing. That doesn't make it any less valuable, or even any less valid as an academic area of research. It just, in some sense, makes it possibly distinct from the sciences. Of course there are also problems in CS that can actually be studied with the scientific method, but I think amelius might have meant that publications such as Dijkstra's and Knuth's papers on goto would be more in the "lessons learned" category than in the "results from the scientific method" category. They would thus not really make computer science a science even though they're not really in the "CS as a part of math" category either.
- btilly 5y agoThe original question wasn't whether computer science is a science, it was whether computer science is a branch of mathematics. My position is that computer science is neither a science nor is it a branch of mathematics.
- marcosdumay 5y agoYou imply that mathematics isn't concerned with notation?
- js8 5y agoI agree (as somebody else pointed out) these are more about software engineering (and I don't see a contradiction in being both, many people we consider physicists today were also engineers in their time). Although I will point out, there is https://en.wikipedia.org/wiki/Structured_program_theorem https://en.wikipedia.org/wiki/Structured_program_theorem which is a mathematical statement. Whether to actually follow that result when building software is a matter of engineering taste, but the theorem tells you, at the very least, you can do so.
- btilly 5y agoLet's see. Dijkstra introduced the A* graph search algorithm. Knuth wrote THE classic algorithms book. Peter Naur is best known for his work on parsing (he is the N in BNF notation). Even if you try to draw a distinction between computer science and software engineering, most of the people writing those papers were pretty squarely on the computer science side. But I don't draw that distinction. ALL of them were tenured professors of computer science. ALL of them were published in journals of computer science. There is no valid basis on which you can draw an artificial line between computer science and non-computer science, and put those outside of computer science. Doubly not if your goal is to say that computer science is a subset of mathematics rather than its own thing.
- js8 5y agoYour claim (as you explain elsewhere) seems to be that because discipline of software engineering exists and is related to computer science (and there is a fuzzy boundary between the two), we cannot think of computer science as a subfield of mathematics. I honestly don't see how that follows. Does the fact that writing LAPACK required software engineering mean that numerical linear algebra is not a part of mathematics? My basis for grouping them together is because of the subjects under study and research methods used. You can always claim that two different fields are different, but I think making arguments for some relationship is more useful.
- btilly 5y agoMy claim is not that software engineering is related to computer science, it is that software engineering IS PART of computer science. And being part of it, means that computer science is not merely an applied subfield of mathematics. A truth that mathematicians and computer scientists accepted decades ago when computer science split off from mathematics into its own department. AS for your example of LAPACK, "The existence of evening, my dear Boswell, does not mean that day is the same as night." Numerical linear algebra is on a boundary between mathematics and computer science. There is a large boundary between math and computer science. But then again the same can be said of, say, math and physics. But by the time you're worried about how to use caching effectively, and make that work in a distributed computation, you're pretty far on the computer science side. Also your idea of grouping them because of research methods is problematic at best. For example machine learning research has a highly experimental flavor that does not fit in mathematics at all. Quantum computing contains a lot that is closer to a field of applied physics than of mathematics. And so on.