Many great CS programs also don't require physics. From my observations, physics requirements in curriculum tend to tacked on solely due to CS being in the engineering school. To be honest, physics beyond a general overview is not really useful for most CS grads, even those doing complex CS-heavy work.
Discrete math, logic, proofs, and probability are all immensely useful in CS. However, they tend to be of a completely different flavor of teaching compared to calculus courses.
My criticism is based on the same assumption that underpins your argument, that the people looking at this list already have a sufficient background in mathematics, or more generally that people looking at the article have general STEM training.
Yet, just looking around HN, you'll see that many of those asking "Should I get a CS degree?" are people who just fell into programming, and in the larger world you have people moving into the field as a career change Think about all those bootcamps that market to liberal arts and business majors. These are people with degrees that correlate with a weakness in mathematics and science. A weakness which often shows up earlier in education and results in such people avoiding Calculus in high school and college.
As I take online courses, the limiting factor [after time] is the amount of mathematics I have at my finger tips. It is perhaps a common problem as even Einstein is said to have wished he had studied more mathematics.
In the end, if computer science education is basically vocational, then perhaps it makes sense to replace Calculus I and II with Rails I and II. But that's not really what 'Computer Science education' usually means. That's IT and CIS.
It is easy to argue that Calculus helps, but it would also be easy to argue that various other fields of study would help (physical education, journalism, English to name a few).
Full disclosure: I am a professional Full Stack Developer with Grad Level CS Education
Now my personal opinion is inclined toward calculus being part of a computer science curriculum in the absence of compelling evidence that it should not. My reasons are:
+ Calculus is where algebraic skills really get practised to the point of competence because there they are tool rather than an end in themselves.
+ One of the longer edges at the edge of computer science as a science encompasses signal processing and that entails calculus directly or indirectly via statistics.
+ If computer science is a branch of mathematics, constructing an argument is left as an exercise for the reader.
Against calculus the primary argument is vocational. But as with any science curriculum these days, the product is graduates not scientists. We with half of all graduates below average.
(1) Research in Computer Science. Don't expect to get very far in research in any STEM field without good knowledge of calculus.
Calculus is a pillar of Western Civilization, one of the all time crown jewels, and the root of the most important part of math, 'analysis'. Discard 'analysis' at high risk for the future of your career.
We're talking about the future here, right? That is, you are in education to prepare for the future, right?
E.g., the last paper I published on computer science was heavily based on measure theory, that is, a grown up version of calculus.
At present, commonly some of the best research opportunities are to further 'mathematize' computer science where calculus is just baby talk broadly assumed.
(2) Keeping up in Computer Science. To keep up, you will need to read, and authors will feel free to use some calculus.
E.g., maybe you are interested in models of viral growth on the Internet. Okay, you can quickly come to the differential equation
y' = k y (b - y)
with y(0) known. Just for viral growth, some calculus.
(3) Applications. E.g., maybe you want to do some 'machine learning' using, say, maximum likelihood estimation. There need to solve a problem in non-linear programming. A key part of that work is the gradient, that is, calculus.
In robotics, drones, and other forms of mechanical automation, well need some calculus.
More generally,a lot of the value to the student in a degree is signalling -- not only the bare fact of the degree itself, but also culturally. Even if an online education can't provide the first part yet, it can provide the second one. Dropping a reference to the Church–Turing thesis into the conversation at an interview might get you the job. Such "success" is independent of whether or not knowing the lambda calculus is actually helpful day to day once you're there.
What I do is very different than what a web developer may do. Not better or worse, just different, and it requires a very different skill set. The fact that we not get roughly the same education is ludicrous.
Why do you bring up Rails? If it is in reply to what argonaut said, that is a straw man; argonaut seems more likely to want to replace calculus with logic, discrete math, etc. I.e., other branches of math.
It's an argument for vocational relevance. I simply extended it. It's 'slippery slope' not strawman.
However, slippery slope arguments are relevant for science education and we are talking about computer science. They become less relevant as
science -> engineering
because arches and bridges can be designed empirically. Which is fine if you're training Roman Legionnaires. But it doesn't produce an Omar Khayyám.If someone feels like they need calculus, they can go right ahead and take that MOOC!
I wouldn't really say that to argue for having courses that are mostly relevant for CS in a CS course is to argue for vocational training - it would be more like arguing for a more specialized (to CS) education, as opposed to a more broad education (CS plus other things that might not be directly relevant or transferable to CS).
The depth usually required for a CS degree is not usually required in high schools (and often not available there), nor is it usually a requirement for non-STEM degrees, and people wanting to self-teach CS after college will very often be non-STEM majors.
I don't know where you got this impression. Most liberal arts students never take calculus. And those students who do probably don't continue on to take Calc II and III, or linear algebra, or additional math electives, all of which are required in a typical CS program.
Obviously, other engineering disciplines require these courses, but it's not correct to say that most college students know anything about math.
As I tried to imply, physics is the one physical science where there is an introductory sequence that requires calculus as a pre-requisite and it's application to pass.
http://www.abet.org/uploadedFiles/Accreditation/Accreditatio...
Like any technical degree, understanding the maths is one area where the educated differentiate themselves from mere graduates. All those hours spent thinking mathematically and procedurally are useful. Comfort with ciphering is essential.