Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Possible Duplicate:
Where is the application of Calculus(of continuous quantities) in Computer Science or programming
How can calculus and linear algebra be useful to a system programmer?

Differential and integral calculus is part of my degree but I don't understand why. Where does it come in play, where is it used?

share|improve this question

marked as duplicate by FrustratedWithFormsDesigner, Robert Harvey, World Engineer, MainMa, Yusubov Sep 25 '12 at 18:31

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

4  
Finance, science, engineering, medicine. There is a huge demand for people who understand math and can program. This line of thinking is exactly why my employer throws resumes of those with a computer science degree in the trash. We who interview and hire don't even get a chance to see those resumes. Even if the job is largely programming, we'd much rather hire a scientist or engineer who has learned to program (badly!) in an ad hoc manner over of the typical comp sci major who exudes the attitude displayed in this question. –  David Hammen Sep 25 '12 at 17:47
2  
    
So it is used in specific fields and falls in the good to know category. I understand that as a developper you need to understand the field in which you are working. That said there is a lot of content to see which is why I asked the question. (We cannot know every field) –  Tommy Sep 25 '12 at 18:02
    
Read this article about how mathematically based all software really is: sites.google.com/site/steveyegge2/math-every-day If you can get the maths down, you will have a serious leg up on a lot of us, and you'll especially need it to pass interviews at most really good companies even if you won't use it day to day at those jobs. –  Jimmy Hoffa Sep 25 '12 at 18:16

5 Answers 5

Have you taken an algorithms course? Have you heard of the Big-O notation? You need to know about limits and derivatives to understand what Big-O means, and why an exponential algorithm will take forever, while a quadratic algorithm might be feasible.

Many areas, such as operating systems or databases require the knowledge of probability and statics. And you cannot explain continuous probability distributions without talking about integrals.

I could go on and on, but let me conclude with this thought. If you wish to be good at what you do, you should not be asking "Why do I need to learn X?". You should be asking "Which X should I learn first."

share|improve this answer

It stretches your brain muscles in awkward but useful ways.

Here's someone much more articulate than me saying the same thing but much, much better. (Neil deGrasse)

http://youtu.be/P0E-9uJgDZU?t=45s

share|improve this answer

Fields that use numerical methods (the kind of thing where Numerical Recipes might be an important reference book) generally prefer or require some understanding of calculus and linear algebra. These include (off the top of my head):

  • computer graphics, including computer games
  • anything that uses statistics
  • engineering and science
  • quantitative finance

So, a fairly substantial minority of high-quality technical programming positions. True, this kind of expertise is irrelevant to generic web design jobs. But many programming jobs don't really require an understanding of algorithms, either. If you eliminated every course that wasn't universally necessary, you wouldn't have much of a degree left...

share|improve this answer
    
+1, even with the Numerical Recipes reference. It's kind of the flip side of the problem. It's quite bad from a computer science perspective (not to mention that it's just bad from a math perspective). –  David Hammen Sep 25 '12 at 18:19
    
I know, but if you remember that the math is a bit flaky, it is still an important reference. I don't know of anything quite as encyclopedic -- look up your problem in NR, then follow the references to find out how it really works... –  comingstorm Sep 25 '12 at 18:22

you need high level math in your degree for two reasons.

  1. Everything is math, and knowing and understanding that math makes you better equipped to work with those things. True computer science is one of the purest applications of math there is.

  2. Perhaps more important than point one, demonstrating competence in advanced math topics is one of the best way to prove you aren't an idiot, which is arguably the biggest reason to get a degree.

share|improve this answer
    
Re 1: Theoretical computer science is indeed a kind of math, but it's a very far shot from calculus (the kind discussed here; I am aware that the term is also used in various computer science contexts, for very different things). –  delnan Sep 25 '12 at 18:02
    
For fans of theoretical CS: cstheory.stackexchange.com –  MetalMikester Sep 25 '12 at 18:27
    
@delnan, theoretical computer science includes analysis of algorithms, which uses calculus. You cannot explain computational complexity without limits and derivatives. –  Dima Sep 25 '12 at 18:29
    
@Dima Okay, I'll give you that. It's only a small subset though. As the guys at cstheory.SE how often they do calculus. –  delnan Sep 25 '12 at 18:32

The analysis of algorithms often uses some results from the calculus to estimate how running times and memory requirements change with problem size.

Probability and statistics are useful in several areas of computer science. Folks sometimes suggest that coursework in probability and statistics should replace the calculus, but a serious course in probability and statistics will have calculus as a prerequisite.

Several software fields use the calculus directly: machine learning, software for science and engineering, physics engines in computer games. You may not end up going into one of those fields, but taking the calculus early in your education keeps the option open.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.