Is Calculus necessary for computer science student? [closed]

A software engineer probably does not need to study calculus, and it is less likely to be useful than graph theory, elementary logic, study of algorithms, etc. Of course, if you are implementing algorithms for use in science and engineering, calculus and numerical methods for approximating calculus operations will show up all of the time.

AI, on the other hand, is all about calculus (despite the best attempts of the machine learning community to "rebrand" concepts like numerical optimization, the chain rule, gradient descent, etc.) It's hard for me to imagine a successful data analyst or AI researcher who doesn't know at least the basics of calculus.

EDIT: In response to the answer suggesting you do not need calculus to be a data scientist at a company like Google, consider this blog post from a Googler with advice on the job search:

Math like linear algebra and calculus are more or less expected of anyone we’d hire as a data scientist


Calculus is a fundamental mathematical science - Learn it to broaden your mind and not necessarily to be graded at.it. It is fundamental for scientific computing. Programming in scientific filed specially engineering require background. I am surprised that you are studying engineering without calculus!!!


I’m a CS student myself so I can relate to what you’re asking. First of all, it really matters what branch of CS you’d like to pursue. For example, if you want to do cyber security(more specifically, cryptography), you will definitely need to know a lot of number theory. In your case, you’re interested in AI and data science but that’s still a bit vague; most people who’d like to do AI/data science, don’t really care about what’s going “under the hood”(which is not really that bad) and use libraries such as Pytorch, Tensor Flow, etc(but note that these people aren’t just AI enthusiastics; many of them work for big companies and are rather successful in their respective field). But there are people that are trying to make new, cutting-edge algorithms and write papers and in that case, you definitely will need more than just high school level math(university level calculus, linear algebra and statistics mostly). So if you are one of the former, high school level calculus, some university-level linear algebra and statistics(first year) would suffice. But if you’re one of the latter, you will need a lot more than just high school calculus and basic university linear algebra and statistics.

To sum it up, most people who do AI(again, not just enthusiastics; people who work for Google, Facebook, etc) do not always understand what’s going on in a library/module. The people who write these algorithms and papers do that. But if you have the time, try learning calculus, linear algebra and statistics so you’ll get a better understanding of what’s going on and maybe even you can make new algorithms that change the AI industry:)

EDIT

I think some people mistook what I said about some people not knowing how something works in AI: Does every successful data scientist know how regression works? Of course they do! How and why batch gradient descent works? 100%(you need calculus for these)! But do they all also know how restricted boltzman machine works? Probably not. Do they all understand VBEM? Of course not! The point is, I didn’t mean that people working for Google don’t know calculus or how an algorithm such as deep neural nets or NLP works; I just meant that you don’t need to be as good as most math students at calculus. Good luck!


Mathematics needed in Computer Science (Graph theory, Boolean algebra, Number theory) Vs Mathematics for other traditional Engineering disciplines is usually contrasted as Discrete Vs Continuous mathematics.

That is a correct, best, and shortest description of the contrast. So one can find people who have not yet learnt any serious calculus excelling in Programming and in software. This depends on the nature of applications one wants to handle as a software professional. If you want to be in software working for modelling financial markets or sending rockets to space Calculus is the way.

(Self-Promotion): I have written an article in a Science Education Journal on this aspect analyzing what aspect makes it to work in some application domain and fail in another. Here is the link


Calculus (and analysis) is actually far more useful in computer science than one may think. (Also: computer science $\neq$ programming.)

I need not mention that machine learning (especially learning theory) is all about analysis, probability theory and topology (usually on Euclidean spaces), all of which require calculus. Information theory requires knowledge of measure-theoretic probability theory. Robotics requires calculus for movement planning, etc. Computer graphics require a lot of analysis and even some knowledge of differential geometry, which could not be studies without a solid knowledge of analysis.

Even in fields that seem unrelated to analysis, it can still be useful. Let's use my field of research, programming languages & logic, as an example.

Infinite-precision computation, for example, uses many important concepts in real analysis. Note the fact that all computable functions on $\mathbb{R}$ are continuous. Using this insight, problems about infinite-precision computation can easily be transformed into problems about properties of functions on and the topological properties of the Euclidean spaces $\mathbb{R}^n$ (see, e.g. this talk and this paper). The paper was published in Logic in Computer Science 2018, which has little to do with analysis!

Of course, many other related fields of research require knowledge about analysis, for example the design and semantics probabilistic programming languages, which requires knowledge of measure theory. Not to mention that studying calculus and analysis is quite fundamental in building up mathematical maturity that is required for advanced mathematical topics required for computer science, and analysis can be an important pathway to more advanced topics of practical value in computer science, such as probability theory and topology. (You can study topology without real analysis, albeit that makes it much harder. You definitely cannot study probability theory without calculus.)