Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's woefully missing the mathematics curriculum that all the reference institutions [and any accredited US program] require. Four semesters includ8ng threeof calculus appears typical. CS programs in the US also require the two semester physics sequence where calculus must be applied.

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.



That's because 1) calculus is taught in high schools and is generally taught in college regardless of whether you major in CS (so for example someone wanting to self-teach CS after college will have taken calculus). And, calculus is not particularly useful for most CS grads, except for specific areas (theoretical aspects of probability, machine learning, graphics).

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.


I'm not saying calculus is something that every computer science graduate uses in their daily professional life. But you're not going to meet a [US] computer science graduate who does not have it or a computer scientist who cannot perform it. And anything that says "here's what a computer science degree is" does a disservice by not mentioning it.

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.


You are definitely correct that the traditional Computer Science education includes Calculus, but that does not mean that it should include Calculus. I would appreciate if there was empirical reasoning for why Calculus should be taught in Computer Science rather than the argument be "we need Calc because we're supposed to and every one else has it".

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


The should I am shoulding on the article is that it ought to account for the facts on the ground. The question of whether computer science curricula in the abstract ought to include calculus is a different question than should something which purports to be equivalent to a computer science curriculum include it - particularly when four of the five reference degrees include calculus and the sort of person who might pursue this track is subject to Dunning Kruger effects.

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.


> I would appreciate if there was empirical reasoning for why Calculus should be taught in Computer Science rather than the argument be "we need Calc because we're supposed to and every one else has it".

(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.


That seems to be setting up an barrier for Calculus that nothing else has to face. Is there empirical evidence correlating an operating systems course to success in the field?

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.


An OS course is directly under CS. Getting asked OS questions during a systems interview is normal. Getting asked calculus questions in most CS interviews (except the specific areas of machine learning and graphics, and even then pretty much never) is unheard of. When's the last time you were asked to differentiate something, integrate something, use Taylor series, double integrals, etc? Having to maximize/minimize some function might come up, but probably in an abstract sense.


I think CS really needs to be split into two paths; software engineering and (for lack of a better term) software development. I use math on a daily basis. Today it's statistics, yesterday it was calculus (motion control tuning), tomorrow it may be trig.

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.


How are you going to understand statistics on a level to be able to build programmable models without an education in Calculus?


> 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.

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.


His argument is that Calculus isn't used much 'on the job' and that these other things [which just happen to be maths] are better because they are used on the job.

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.


Sorry I instigated this big argument. My main point was just to point out why it is perfectly plausible for the OP to not include calculus.

If someone feels like they need calculus, they can go right ahead and take that MOOC!


I see what you mean, but I don't quite agree. argonaut seems to be refering to relevance to CS ("even those doing CS heavy work"), not just the things that CS grads end up doing (which probably is more likely to be software engineering than CS). And when it comes to logic, discrete math et. al., the relevance of it refered to the relevance to CS, not to enterprise programming, web programming, or whatever it is that CS grads end up doing.

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).


Comon calculus was invented in the 17th century. Thousands of literature has been written on them. It won't be hard for one to fucking pick a book from their neighborhood library and study it.


> That's because calculus is taught in high schools and is generally taught in college regardless of whether you major in CS (so for example someone wanting to self-teach CS after college will have taken calculus).

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.


and is generally taught in college regardless of whether you major in CS

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.


Physics was not a requirement for me (accredited US uni). Calc 1-3 was. Math was almost an automatic minor.


That's what I get for shooting from the hip. Physics is often required by the five programs referenced in the article, but not directly by current ABET criteria. Though the mission of the program could indirectly require it.

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...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: