Hello, I'm currently a physics major but am thinking about changing to math with a minor in computer science. I've always been interested in areas of computer science that required a lot of math such as cryptography but mainly computer graphics. The math degree is very lenient in the sense that I can pick most of the upper division courses. I tried googling which maths would be of the most use in computer science in general but usually the results I found were just "trig, linear algebra, calculus" etc which isn't what I'm looking for. I'm posting in computer graphics because I figured this would be the most math-heavy programming section.

Currently for math I have calculus 1-3, linear algebra, differential equations, and a course in discrete math.

Here are my questions:(gear 3 and 4 towards computer graphics/simulations, I suppose):

**1)** Do different branches of computer science require vastly different branches of math or is it all similar?

**2)** For computer graphics/simulations. Would I be better off doing math or physics for this assuming equal amount of programming for both?

**3) **A 2-semester sequence that I have to choose between is:

Survey of Multivariable Calculus (More advanced vector calculus, more max/min geometry stuff, complex functions etc)

and

Survey of Partial Differential Equations (Just all PDEs and orthogonal functions and stuff)

OR

Real Analysis 1

and

Real analysis 2

I'm not sure how useful the more advanced calculus stuff is compared to the proof based courses like Real Analysis. Any ideas?

**4) **Lastly, which of these undergrad courses are the most important?

Numerical Analysis 1 & 2

Combinatorics 1 & 2

Complex Variables 1 & 2

Topology 1 & 2

Another discrete math course

Advanced Linear Algebra (probably a lot of proofs)

Abstract Algebra

Probability Theory

Advanced Geometry (Hilbert postulates, Lobachevskian geometries etc)

Statistical inference

Theory of Numbers 1 & 2 (The Euclidean algorithm and unique factorization; arithmetical functions; congruences, reduced residue systems; primitive roots; certain diophantine equations.)

Correct me if I'm wrong but I'm thinking numerical analysis, combinatorics, and another discrete math should definitely be taken for any branch. But what else?

**Edited by malignant, 18 July 2014 - 03:48 AM.**