Note to OP, I'm really not a huge fan of people posting links to their own blogs...
And in response to your essay, which by and large was tldr, I don't think many people run around saying that CS is math. Many computer scientists, as I'm quite sure you know, need to model their computable structures formally, show reductions or equivalences to other well-studied constructs, and then use the properties of these constucts to establish the expressiveness/complexity/whatever of their model. If outstanding questions remain then it can motivate basic research into the relevant mathematical field (particularly true with cryptography). These people "do math" - many other's from a CS background don't.
I think there's validity to your argument, but you come across as a bit arrogant. A few comments to your post:
>The CS profs make a mess out of math.
Properly done CS _is_ maths. Maybe most of it is not in the branches you're interested in, but the core of CS is maths (think Turing, Church, Von Neumann, Codd, Hoare, Martin-Löf, etc.).
>it's a strain to call 'flows on networks' computer science.
I've always heard it called part of operations research, which happens to be an rather useful field to teach CS students. Yes, it is taught at probably a very basic level, but it is still useful as taught. And saying that:
>So, CS wants to hijack flows on networks. Not really good.
is disingenuous at best. Actual networks, like the one you're using now to post about your discontent with CS are basically run on computers, and are, not surprisingly, part of what CS people worry about. There's a whole field of very applied CS that's a direct application of some basic operations research results.
>For both teaching and research, CS needs to clean up its act in math.
In a general sense, yes, it would be good. Maybe you also need to read some better CS stuff?
>I have an example: Some years ago I took a problem in practical computing and derived some new probabilistic math for a solution.
You go on to rant how editors of CS journals weren't smart enough to understand your paper. That might well be the case, but it is obvious that you were not any smarter, sending a paper which is pure maths in nature to several CS journals, when the "problem in practical computing" was merely an application of your result, and not the main point of your paper. If you were a physicist working on some very deep results of quantum mechanics that happen to have a direct application to, say, molecular biology, you would still send it to a physics journal, not a biology journal, wouldn't you?
>Here's what they need to do:...
That's a good plan for learning a bunch of maths, not CS.
Your sentiment about the relationship between computer science and math comes up often enough that I wrote a short essay about it. Computer Science is Not Math: https://news.ycombinator.com/item?id=3928276
"Sorry, but when you state that CS should be a footnote in a math book, you are kinda making the point that everything in CS (even in those sub-domains that are eminently practical) should be math-based to do anything meaningful. This is demonstrably not true."
I'm exaggerating, but, still there is a reasonable point here. CS is about some 'science', and call that the mathematical part where we have some solid material worth being called 'science', For the rest, call that 'computer practice' or some such.
The upside of my view is that for some serious progress we're going to have to use some serious methodology. So, I'm proposing if not mathematical physics envy then applied math envy. Applied math didn't take on how to design the display lights in a scientific pocket calculator although without the lights the thing wouldn't work.
My view is not the most extreme: Last year I communicated with a CS prof whose position was that CS is looking for the 'fundamentals of computation'. Hmm .... It sounds like he believes that the P versus NP question should be right at the top of the list, and I don't. I'll settle for anything that is solid and a contribution, even if small, to the 'science' and not just to current practice.
LIkely many people here know the current state of programming language research much better than I do. If that field has gotten nicely mathematical with some solid material, great. The progress from Fortran, Cobol, Algol, Basic, PL/I, Pascal, C, C++, etc. was pragmatic and important and of enormous value to the economy but not much progress in a 'science' of programming languages, and that progress, with poor methodology, has slowed as we might have expected.
Maybe I'm saying that, in 1920, if we wanted a really good airplane, then maybe we should set aside the wood, linen, and glue and go do some aerodynamiocs calculations, discover Reynolds number, and discover that those really thin wings were a mistake. Or, observational astronomy was just a lot of curiosity until Newton came along and made progress in understanding the universe. The practical chemists had discovered a LOT, but by applying quantum mechanics they made HUGE progress.
If we are going to make the huge progress we want in computing, then history suggests that we can't be just pragmatic and that "theory is under-rated". We can't expect that chemistry will do much to help CS, but the obvious tool is math, to turn CS, the science, part into some applied math.
The article can be efficiently summed as: Computer Science is not always Math, sometimes it is more of a Science or Engineering or something of all of them.
I think this is one of those places where a word has different meanings to different people and correctness takes a religious quality and fruitful discussion requires telepathy. Also often depending on the resolution of the definition and where a person stands on if the thing and its description can/should be distinguished.
People who say computer science is math I suspect are hard pressed to find anything that isn't. Myself for example, I define math as the maximal object that has something to say - about anything that has structure - in a systematic way. You magnify/exaggerate a certain aspect of the structure you think is key and explore it in a systematic way to gain insight on the whole thing. So while aspects of computer science are more engineering or science than math, I can look at the whole system of doing computer science in an engineer like function as mathematically describable.
Computer Science rarely happens on blogs. It's a discipline with conference proceedings and journals. You can read those instead of some random person's blog.
As a math major who went to grad school in CS theory, I find the article's title vexing. It projects a faux dichotomy of computer scientists v. mathematicians when, in reality, it's mathematicians v. mathematicians.
Many areas of computer science, at least the areas in which Leslie Lamport is best known, is a strongly mathematical discipline inspired by models of computing. Dr. Lamport probably considers himself as a "computer scientist", but I bet it is really far from what many laypeople (even the HN crowd) imagine to be computer scientists.
Another issue is, mathematicians have as much to do with mathematical pedagogy in secondary education as computer scientists have to do with science experiments in high school. Again, the title is really misleading in this regard.
Anyway, I am glad that a great mind like Leslie Lamport and David Mumford (definitely a mathematician) are thinking hard about how to make math education better.
Wait, let me get this straight. It's a red flag when a computer science paper has math in it? Computer science (in the asymptotic limit) is math. And the papers ideally should read like math papers. Otherwise it's not CS.
It's just math. In my view, CS theory is about computations as a whole. That is – formalisations, languages, algorithms, structures, and design principles.
CS is not necessarily just the study of algorithms. I have a formal CS education and it encompasses everything from circuit design to algorithms to data structures to operating systems to statistics and graph, number and decision theory. Algorithms is a subset of overall theory that is a component of Computer Science and Maths.
But I do agree, they've implemented some sort of hashing, with several buckets and trees to search from. It may not be efficient compared to actual computer databases, but it's the best humans can do with O(log n). Space requirement is still unfortunately O(n) but hopefully PDFs will help the ATF guys.
If anything I'm saying that I'm happy people are recognizing that Computer Science has applications outside of computers, and is practically Applied Maths. A bachelor's degree in CS is only 2-3 math courses away from a minor in Maths.
The irony is that a computer scientist is helpful in a computer-less environment. I guess you could say the human mind is a very advanced computer. It may not seem ironic to everyone on HN, but to the layman, what on earth could a CS person do with no computers? And the answer is a lot. After all Djikstra handwrote his algorithms on paper.
NB I get the impression that there are a fair number of people on here with CS education at all levels...
Edit: At this moment the top article is "A Polynomial Time Bounded-Error Quantum Algorithm for Boolean Satisfiability" - which seems pretty CS to me...
my point still stands, it is advanced mathematics at this stage. you do have a CS doctorate but as I said it requires time and refinement to make it accessible even for CS researchers. It is un-scientific to criticize and snub which you can't make informed arguments about.
The "contrast" is being highlighted, but I can't see anyone in there seriously advancing the idea that all of the things I've described aren't "theoretical CS" - they just suggest that there aren't many people in the US doing them. One commenter rightly notes that there are plenty of people doing the kind of "theoretical CS" I'm talking about at CMU, for example (and I can think of a handful of other places doing similar work in the US).
So I stand by my original assertion: the definition of TCS as being exactly complexity and algorithmic analysis is a particularly narrow definition that is inconsistent with the way in which most people use and understand "theoretical computer science".
But isn't CS one of the formal sciences (together with mathematics, statistics, etc.)? Familiarity with mathematical notation should be pretty foundational for active researchers in the field I would think.
Hahaha. As someone who did a degree in physics, computer "science" is a joke when it comes to math. They took one of the easiest field of mathematics and rolled it in to a half-assed degree. Sure you learn some logic and some graph theory (yeah, lets try to avoid numbers as much as possible...) but it's not at a very high level. I seriously doubt CS professors are making significant contributions to mathematics.
"there is a fundamental disconnect between what you seem to think you should be learning and what is actually being taught"
Yeah. That was the point of what I wrote. There is also a disconnect between what academia wants to teach, and the tools that the students need to actually learn the concepts.
It's like teaching an Literature class without actually teaching people how to write. Code is our primary tool for expressing algorithms and concepts. If you hamper people's ability to write code, you are shooting yourself in the foot.
And in response to your essay, which by and large was tldr, I don't think many people run around saying that CS is math. Many computer scientists, as I'm quite sure you know, need to model their computable structures formally, show reductions or equivalences to other well-studied constructs, and then use the properties of these constucts to establish the expressiveness/complexity/whatever of their model. If outstanding questions remain then it can motivate basic research into the relevant mathematical field (particularly true with cryptography). These people "do math" - many other's from a CS background don't.
reply