I am greatly interested in programming, and I guess I am doing good at it. But at the same time I have tons of calculus and stuffs inside my course studies of bachelor in computer engineering which I think it shouldn't be there. I want to know where will I need to use these calculus in real time programming?
I must say that much as I enjoyed the Bolzano–Weierstrass theorem, Lebesgue integration, and the other things I learned in my advanced calculus classes, they haven't proved directly useful for my work. I'm surprised your university even requires it of computer engineering students since advanced calc is usually a math-students-only upper-level course. Are you really doing that sort of advanced calculus, or is it more that you don't know enough calculus to know what "advanced calculus" means?<p>The techniques of the intro to intermediate calc classes are more relevant. That would be up to about Stoke's theorem and partial differentiation, and some differential equations and numerical analysis to round out the calculus. Statistics, topology and algebras (like matrix algebra) are different fields and have different impact on software development, which I won't get into here.<p>I don't have much experience with real-time computing, but if you're doing any sort of real-time machine control then you're dealing with physical systems, where differential equations and questions of numerical accuracy come into play. You need to know how your model works mathematically, how that model is implemented in hardware, and the types of error propagation which come from both. You'll need to know about feedback loops, and get some feel for how to understand their stability or instability.<p>That analysis is best done with the techniques of calculus. For example, how do you understand a PID controller without knowing calculus?<p>Now, you can argue that you know what type of field you want to get into and you know that you'll never need calculus for it. But then you're really asking about the differences between US-style university, which stresses a broad base of knowledge, vs. a trade school which emphasizes the study of techniques relevant to a job.
Yes, you use calculus in computer programming. Every day.<p>Remember back in high school when you'd look at the sky and ask "who will ever actually use this stuff?" That would be you. You're going to use it, as well as all that crazy matrix transform stuff they'll teach you next year and the DiffEq they'll spend the 3 years after that pounding into your head until you finally get it.<p>So yes, sorry to break the news, but you're that guy. You've picked one of the few professions in this world that actually use higher math.
Advanced calculus was the first course where I ran into definitions that I struggled to understand in a serious way. What does it mean for the interval [0, 1] to be "compact"? Well, it means exactly what the definition says (e.g., every open cover has a finite subcover), but what did that "mean"? This was the first course where the definitions were pushed beyond the boundary of my intuition.<p>Seems like a way of thinking that would be useful for computer engineering, or damn near anything else.
What everyone said. And you'll need it in fourth year no matter what area you pick to specialize in.<p>DSP is all calc
Control Systems too
As our circuits
Graphics (more so CS but...)
Embedded Systems - you'll need the rigour math provides. And if you do anything that hasn't been done before, you'll be reading a lot of papers. Most formalized concepts and implementations need math to be explained.
Same for Computer Architecture<p>For that matter, most other options also require advanced calc - one area that comes to mind is management science.
There are two things an education gives you: knowledge and ability. Math enhances your ability - problem solving, analytic, composing complex things from primitives, decomposing complexity into simpler forms, abstraction, etc. Math gives you a better mind.
Calculus is in your curriculum to train your way of thought. Namely to improve your analytical skills and your ability to use abstract ways to formulate problems.
You will need that plenty in real time programming.