123

I can think of a few courses that would need Calculus, directly. I have used bold face for the usually obligatory disciplines for a Computer Science degree, and italics for the usually optional ones. Computer Graphics/Image Processing, and here you will also need Analytic Geometry and Linear Algebra, heavily! If you go down this path, you may also want to ...


25

This is somewhat obscure, but calculus turns up in algebraic data types. For any given type, the type of its one-hole contexts is the derivative of that type. See this excellent talk for an overview of the whole subject. This is very technical terminology, so let's explain. Algebraic Data Types You may have come across tuples being referred to as product ...


13

Numerical Methods. There exist cumbersome calculus problems that are unique to specific applications, and they need solutions faster than a human can practically solve without a program. Someone has to design an algorithm that will compute the solution. Isn't that the only thing that separates programmers from scientists?


13

Automation - Similar to robotics, automation can require quantifying a lot of human behavior. Calculations - Finding solutions to proofs often requires calculus. Visualizations - Utilizing advanced algorithms requires calculus such as cos, sine, pi, and e. Especially when you're calculating vectors, collision fields, and meshing. Logistics and Risk ...


8

The short answer to your question is "no". Richardson's theorem and its later extensions basically state that as soon as you include the elementary trigonometric functions, the problem of deciding if $f(x) = 0$ (and hence if $f(x) = g(x)$, since this is the same as $f(x) - g(x) = 0$) is unsolvable. What's interesting about this is that the first-order ...


8

Part 1 I'm going to do something I decided I wouldn't do: try to nutshell my research on this topic. I'll go over on how the algorithmic O-notation must be defined, why it is probably not what you've been taught, and what other misconceptions float around this topic. I wrote this in the form of an imaginary discussion. The following discussion is based on ...


8

Different people have different views on what the definition of continuity should be, but the way I see it, we should define continuity to be computability relative to some oracle. For example: Definition: A function $f : \mathbf{X} \to \mathbf{Y}$ is continuous, if there is a computable partial function $F :\subseteq \mathbf{X} \times \mathbb{N}^\mathbb{N} \...


8

Arno's answer provides some very useful background reading material, I would just like to address your specific question about $\mathbb{R}$. Let us first recall a result by Peter Hertling, see Theorem 4.1 in A Real Number Structure that is Effectively Categorical (PDF here), about computable structure of the real numbers. Suppose we have a representation of $...


7

[The reviews are based on my first hand experience with the materials.] Quick Read: Essentials of game theory (Leyton-Brown, Shoham) - This is a ~100 page book, which will give a strong intuition (and more) on Game theory, this mostly covers the basics, the math here is also pretty lightweight, and this is very much readable (even by a college junior). ...


6

Your problem seems to reduce the following simpler question: Given two functions $F,G$ in class of functions, do we have $F(x)=G(x)$ for all $x$? (In other words, do they have the same value everywhere?) I don't know whether this is decidable, for this class of functions. If it is, then your problem should be decidable as well. For your problem, a ...


6

The fact is that there's very little chance you'll ever use calculus. However, virtually every other scientific discipline DOES use calculus and you are working on a science degree. There are certain expectations of what a university science degree is supposed to mean and one of those things is that you know calculus. Even if you'll never use it. It's okay ...


6

Computers don't use the hexadecimal number system for assembly language. Assembly language, or rather machine code, uses base 256 (typically): instructions are encoded in units of bytes. When displaying machine code, it is customary to use octal or hexadecimal. The reason is that in many cases, the byte is further subdivided into bitstrings, and identifying ...


6

What $S(m) = T(2^m)$ means is that $S$ and $T$ are two different functions which produce the same result while taking inputs as $m$ and $2^m$ respectively. Function $S$ can be considered as an operator with two internal steps (otherwise, composition of functions): $S'$ operator: Input:$m$, Output:$2^m$ $T$ operator(original function): Input:output of ...


6

Part 2 $$ \newcommand{\TR}{\mathbb{R}} \newcommand{\TN}{\mathbb{N}} \newcommand{\subsets}[1]{\mathcal{P}(#1)} \newcommand{\setb}[1]{\left\{#1\right\}} \newcommand{\land}{\text{ and }} $$ Algorithms Are there cases where existing intuition on O-notation may not hold? You may find that your existing intuition does not hold when the input-set is something else ...


6

Let me tell you the story of young Carl Friedrich Gauss. He was six years old and in a small school with one class for everyone from 6 to 16. His teacher needed some quiet time for some job, so he asked the kids to add up the numbers 1 to 1000. 30 seconds later young Carl Friedrich had the answer: 500,500. How did he do it? He changed the order and ...


5

We can compute $$ f(\theta) = -N\log (2\pi)-\frac{1}{2}\sum_{i=1}^N (\langle x_i,\theta \rangle -y_i)^2. $$ Expanding this out, we get that $f(\theta)$ is some quadratic form: $$ f(\theta) = \theta' A \theta + v'\theta + C, $$ where $A$ is symmetric. The next step is to get rid of the linear term. Let $\theta = \psi + \epsilon$. Then $$ \theta' A \theta + \...


5

By definition, $$ f(n) \in O(g(n))$$ means there exists some positive constant $c$, such that for any large enough $n$, $$ |f(n)| \le c |g(n)|$$ or equivalently, $\lim_{n\to\infty} \frac{f(n)}{g(n)} \le c < \infty$ Taking $\log$ of both sides, for any large enough $n$ it holds that $$ \log (f(n)) \le log (c) + \log(g(n)) $$ so, $$\frac{\log f(n)}{\log ...


5

Many people already provided applications in CS. But sometimes you'll find Calculus when you least expect: Regular-expression derivatives reexamined If you know automata this pdf might be worth reading.


5

And why are they exactly the same? I showed a math professor and he thinks they're labelled wrong but couldn't figure it out. I don't even get why there are two. When in doubt, check the book's errata (Page 4). $$ \sum_{R(j)} a_j = \Bigg( \lim_{n\rightarrow \infty} \sum_{\color{red}{{\substack{R(j)\\-n\leq j<0}}}} a_j \Bigg ) + \Bigg(\lim_{n\...


5

Let $f(n) = n/\log n$, and denote by $g(n)$ the number of applications of $f$ it takes to get $n$ below some arbitrary constant. On the one hand, $f^{(t)}(n) \geq n/\log^t n$, and so $$ g(n) \geq \log_{\log n} n = \frac{\log n}{\log \log n}. $$ To obtain an upper bound, notice that as long as $f^{(t)}(n) \geq \sqrt{n}$, we have $\log f^{(t)}(n) \geq (\log n)/...


5

Let $S(n) = T(n) - 2n - 2$. You can check that $S(n) = S(n-1) + S(n/2)$ (ignoring the fact that $n/2$ need not be an integer). This shows that the additive $n$ term doesn't make a big difference. For large $n$, we have roughly $S(n) - S(n-1) \approx S'(n)$, and so we are led to solve the differential equation $$ S'(n) = S(n/2). $$ Consider $f(n) = \exp (\...


4

Some more specific examples: Calculus is used to derive the delta rule, which is what allows some types of neural networks to 'learn'. Calculus can be used to compute the Fourier transform of an oscillating function, very important in signal analysis. Calculus is used all the time in computer graphics, which is a very active field as people continually ...


4

If you have a series of numbers that are consecutive power of 2s, like $1+2+4+8+16+\cdots+2^k$ you get as sum $2^{k+1}-1$. You can either see this by looking at the formula for the geometric series or you can prove this by induction. Then the statement of the lectures follows, since here $k=\lfloor \log (n-1) \rfloor$. Therefore the sum is less than $2n$.


4

If you picture these as distances along a road, it should be very intuitive. If (for example) you start at kilometer #7, then proceed through kilometers #45, #81, and #97, then the distances you travel are 45−7, then 81−45, then 97−81; and the total distance you travel is 97−7. Since the total distance is the sum of the individual distances, 97−7 =&...


4

First, I want to say that it is not the case in general that an algorithm that minimizes the number of uses of the inputs is more accurate, at least for IEEE 754 floating point. For example, compensated summation. On the other hand, it's certainly the case that interval arithmetic can greatly benefit from knowing when two inputs are identical. As a ...


3

The Matrix in Computer Science (Brown) http://cs.brown.edu/courses/cs053/current/lectures.htm Coding the Matrix (Coursera) https://www.coursera.org/course/matrix Both are by Philip Klein http://cs.brown.edu/~pnk/


3

I am a bit uncertain by what you mean by graphical. One notion is to plot or graph a function, like $y=f(x)$, as you would in a highschool level algebra course. Another notion of "graphical" may include some similar to a Cayley graph. I just want to be upfront that the extent of my knowledge does not extend greatly into topology and some algebraic geometry. ...


3

Interpolation. If by computer science you include numerical computing, any why the hell not, you often use trig functions in interpolation. Sometimes you have a sampled version of a function, say a sampled signal, $<u_0, u_1, ...>$. You would like to find a function $f(t)$ such that $f(n*T) = u_n$, for some time period, $T$. Or maybe you don't care ...


3

To these other excellent answers I add this point: rigor in testing. In creating test cases for some applications I have had to make use of calculus to predict expected running times, memory sizes, and choose optimal parameters when tuning data structures. This includes understanding expected rounding error, etc. While statistics is mentioned in other ...


3

The simplest reason is that, the computer does not see this, it only sees the binary. This really just aids the programer. Binary is a mess to look at, octal does not usually work since an octal number is three bits and historically computers have been using 16,32,64 bit instruction sets, none of which are divisible by 3, leaving hex as the best choice.


Only top voted, non community-wiki answers of a minimum length are eligible