

Ask: Best Math Courses for CS? - manvsmachine

Having recently switched my major to CS, I've also decided this semester to minor in mathematics.  I already had most of the 1000 and 2000 level courses done because of my previous major in engineering.  My first upper level elective that I've chosen is Symbolic Computation; I'm also looking at taking Combinatorics next time it's offered, and I was recommended Theory of Probability.  What do you thinkof these?  And does the specialization / generalization ratio apply to math as well?
======
nostrademons
Discrete Math (this often include combinatorics, and was required for my CS
major), Set Theory, and Mathematical Logic. I'd also try to take some sort of
abstract algebra course as well, just so you get used to dealing with axioms
and proofs. Get really good at vectors and matrices if you wanna do any sort
of computer graphics or games; this usually means linear algebra. Skip
calculus & differential equations if you're not particularly into scientific
computing, though they're mighty handy in physics, and occasionally get used
in computer graphics.

I've found I really don't use all that much math while programming. You do
need to know finite state automata (that's usually in Discrete). If you want
to do any sort of language design or type theory, you should know your set
theory well, since types are based on sets. That's basically all that I use
with any sort of regularity...

~~~
manvsmachine
I am taking Discrete right now, it does include some combinatorics but there
is a class that goes into them more in-depth. Already took Calc I, II, III,
and Diff. Eq's as an AE major (kinda rusty though). Linear Algebra is required
for the minor, so it's good that it may prove useful. Other than Discrete, do
any courses typically emphasize set theory?

~~~
nostrademons
At my college, set theory was kinda the foundation for most of the advanced
math courses. You got a basic introduction in Discrete, then there was a
standalone Set Theory course (isn't there one at your university?), then you
needed it for Mathematical Logic, Groups Rings & Fields (the abstract algebra
course), and probably a few others.

~~~
manvsmachine
I found it, they hid it under the name "Introduction to Advanced Mathematics"

------
tlrobinson
My computer science and computer engineering major required a discrete math
course (which mostly included combinatorics, set theory, and logic) and
probability theory, plus calc 1-3, linear algebra, and diff eq. I also took
number theory.

Out of all of them, I'd say the discrete math course was the most applicable.

It also sort of depends on what area of CS you're interested in. For example,
probability / statistics for computer networks, number theory for
cryptography, artificial intelligence uses lots of logic (and many others),
graph/set theory for general algorithms, geometry for graphics etc.

------
pius
In addition to what's been mentioned, you should definitely take a solid
Linear Algebra course. Besides the uses for computer graphics (vector stuff)
and artificial intelligence applications (singular value decomposition et al),
it is really philosophically useful to internalize the concept of
transformations and how many non-obvious applications they have.

------
dyu
You should try taking a logic course. Apparently it makes you think more clear
and argue better. I regret not taken one and now it's too late as I am about
to graduate. Oh and I think you can also prove things better, and see more
tricky cases easier.

~~~
cellis
>> You should try taking a logic course. Apparently it makes you think more
clear and argue better.

Prove it.

