Started by Mar 17 2012 04:46 AM

,
33 replies to this topic

Posted 17 March 2012 - 04:46 AM

What do you feel are some of the more important mathematical courses / topics that one should learn for computer science?

For example:

Abstract algebra? Number theory? Chaos theory/nonlinear dynamics? Combitorics? Graph Theory? Optimization?

For example:

Abstract algebra? Number theory? Chaos theory/nonlinear dynamics? Combitorics? Graph Theory? Optimization?

Posted 17 March 2012 - 06:02 AM

POPULAR

A few things that I imagine are fairly universal:

Algorithms & data structures

Computability and complexity ("theory of computation")

Graph theory

Combinatorial Optimization

Algorithms & data structures

Computability and complexity ("theory of computation")

Graph theory

Combinatorial Optimization

Posted 17 March 2012 - 06:28 AM

What WaryVirus described all falls under Discrete Mathematics, and it is indeed important.

Although perhaps not very specific to CS, I would add Linear Algebra because it is important for everybody.

Although perhaps not very specific to CS, I would add Linear Algebra because it is important for everybody.

Posted 17 March 2012 - 08:19 AM

Yeah, Discrete Mathematics is huge, and I'd put Linear Algebra in there too (especially for graphics, though I use Linear Algebra concepts all the time in various ways). I'd also say a good knowledge of Calculus (and maybe some Differential Equations) can be very handy at times. It seems to me like Discrete Mathematics helps to decompose the problem properly, and then often Linear Algebra or Calculus can be useful in solving some of the decomposed problems.

[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

Posted 17 March 2012 - 01:46 PM

Anything else? Discrete mathematics isnt really what I would consider upper division math, but I know its important. Has anyone found applications for Abstract algebra? Number theory? or Chaos theory? If so what are they?

Posted 17 March 2012 - 02:51 PM

I have used a few things from Abstract Algebra and Number Theory for hashing and pseudo-random number generators. I've used statistics quite a bit (Are those numbers really random? Is this version of my chess program stronger than the previous one?). Probability is really important for almost anything in Artificial Intelligence. If you do graphics, Euclidean and Projective Geometry are pretty important.

I only know a little bit about Chaos Theory, but my understanding is that it's pretty useless. It's just one of these things that have a sexy name and produce pretty pictures, but I don't think you can really do a whole lot with it.

I only know a little bit about Chaos Theory, but my understanding is that it's pretty useless. It's just one of these things that have a sexy name and produce pretty pictures, but I don't think you can really do a whole lot with it.

Posted 17 March 2012 - 05:58 PM

I would say discrete mathematics, linear algebra, calculus, graph theory, and statistics.

Posted 17 March 2012 - 06:26 PM

I enjoyed watching the videos at ADUni.org. It shows an example structure of what undergrad CS education is like.

Me+PC=clb.demon.fi | C++ Math and Geometry library: MathGeoLib, test it live! | C++ Game Networking: kNet | 2D Bin Packing: RectangleBinPack | Use gcc/clang/emcc from VS: vs-tool | Resume+Portfolio | gfxapi, test it live!

Posted 17 March 2012 - 08:48 PM

This is a nice link, but I am ideally looking to go into upper level CS stuff such as theortical computer science, algorithm design, hpc, etc.It shows an example structure of what undergrad CS education is like.

Posted 19 March 2012 - 11:51 AM

On top of what everyone said, without a doubt take a graduate course in Neural Networks.

Posted 19 March 2012 - 01:00 PM

Why?On top of what everyone said, without a doubt take a graduate course in Neural Networks.

Posted 19 March 2012 - 05:41 PM

At a minimum IMO:

Discrete math covers such a potporrui of stuff you will see in CS that any decent CS program will require it.

More Statistics than covered in Discrete.

Linear Algebra for graphics and matrix work you will see popup

and

if you can

2nd course in logic preferablly covering HOL(higher order logic) you will see if you ever mess with Lisp, Haskell, and theorem proving.

Abstract algebra if you plan on doing any crypto stuff since a lot of advance number theory is used.

Public key cryptography draws on many areas of mathematics, including number theory, abstract algebra, probability, and information theory.

numerical analysis if you plan on doing any scientific programming or otherwise work with very large or small numbers, etc where results have to be very precise.

Actually, chaos theory comes into play in numerical analysis:

In numerical analysis, the Newton-Raphson method of approximating the roots of a function can lead to chaotic iterations if the function has no real roots

bottom line is that you can never take/have enough mathematics as someone once said I'm sure

Discrete math covers such a potporrui of stuff you will see in CS that any decent CS program will require it.

More Statistics than covered in Discrete.

Linear Algebra for graphics and matrix work you will see popup

and

if you can

2nd course in logic preferablly covering HOL(higher order logic) you will see if you ever mess with Lisp, Haskell, and theorem proving.

Abstract algebra if you plan on doing any crypto stuff since a lot of advance number theory is used.

Public key cryptography draws on many areas of mathematics, including number theory, abstract algebra, probability, and information theory.

numerical analysis if you plan on doing any scientific programming or otherwise work with very large or small numbers, etc where results have to be very precise.

Actually, chaos theory comes into play in numerical analysis:

In numerical analysis, the Newton-Raphson method of approximating the roots of a function can lead to chaotic iterations if the function has no real roots

bottom line is that you can never take/have enough mathematics as someone once said I'm sure

Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

Posted 19 March 2012 - 10:05 PM

thats why im majoring in math, I just want to be sure i dont take useless coursesbottom line is that you can never take/have enough mathematics as someone once said I'm sure

Posted 19 March 2012 - 11:15 PM

The three most useful math classes:

1. Linear Algebra

2. Ordinary Differential Equations

3. Convex Optimization

...and they work best if taken in that order.

1. Linear Algebra

2. Ordinary Differential Equations

3. Convex Optimization

...and they work best if taken in that order.

Posted 19 March 2012 - 11:48 PM

In addition to what has been mentioned:

- computational geometry (a must!)

- differential geometry

- topology (primarily because it improves your understanding of the math you already know)

- signal processing

- computational geometry (a must!)

- differential geometry

- topology (primarily because it improves your understanding of the math you already know)

- signal processing

Posted 20 March 2012 - 06:57 AM

Let's see, what math classes are left? You guys haven't mentioned Algebraic Geometry, Algebraic Topology and Complex Analysis. Oh, but he needs Algebraic Geometry to learn how to manipulate polynomial expressions using Gröbner bases, and Algebraic Topology is important if you want to really understand global features of Differential Geometry, and Complex Analysis is essential for signal processing.

[/sarcasm]

Computer Scientists should learn Differential Geometry? Really? Why? If you are a physicist, sure... but for CS?

Of course, the more Math you learn, the easier it will be for you to think mathematically, and that can be very useful for a computer scientist, but I don't think every CS student should get a Ph.D. in Math to do his job.

[/sarcasm]

Computer Scientists should learn Differential Geometry? Really? Why? If you are a physicist, sure... but for CS?

Of course, the more Math you learn, the easier it will be for you to think mathematically, and that can be very useful for a computer scientist, but I don't think every CS student should get a Ph.D. in Math to do his job.

Posted 20 March 2012 - 07:26 AM

@Alvaro: I have found all of these useful in my career - some of them don't often have specific application (like I said for topology), but really help one internalize the concepts taught at the less abstract level. The OP wanted "upper division math" - there aren't a ton of things there that are directly and obviously applicable.

I am comIng at this from the perspective of a graphics/computational-geometry phd with an undergrad math major. I don't think that this math is something that everyone would benefit from directly, but i definitely believe that it would be beneficial for anyone who works in computer graphics at a reasonably sophisticated level - not necessaily because they will use it every day, but because it helps to see the bigger picture (except computational geomety - that you really may use every day :-) ).

I am comIng at this from the perspective of a graphics/computational-geometry phd with an undergrad math major. I don't think that this math is something that everyone would benefit from directly, but i definitely believe that it would be beneficial for anyone who works in computer graphics at a reasonably sophisticated level - not necessaily because they will use it every day, but because it helps to see the bigger picture (except computational geomety - that you really may use every day :-) ).

Posted 20 March 2012 - 12:45 PM

I second discrete mathematics, and linear algebra as a background for computer science. However I'm an applied mathematics grad student who also programs, not a true "computer scientist", so take it with a grain of salt..

These subjects can be taught at a low or high level in a class, but the subjects themselves run quite deep. Linear algebra becomes functional analysis, operator algebras, etc - fields of current research. Discrete math branches into combinatorics, graph theory, etc. You don't have to look far in discrete mathematics to stumble on unsolved problems.

These subjects can be taught at a low or high level in a class, but the subjects themselves run quite deep. Linear algebra becomes functional analysis, operator algebras, etc - fields of current research. Discrete math branches into combinatorics, graph theory, etc. You don't have to look far in discrete mathematics to stumble on unsolved problems.

Posted 20 March 2012 - 06:13 PM

I'm thinking Abstract algebra, Number theory, Graph Theory, Optimization might be the best bets. I already have to take linear algebra, and discrete math I have taken already.

Posted 20 March 2012 - 10:44 PM

If you're interested in abstract Algebra, you might want to check out the harvard video lectures by Benedict Gross; they're really good:

http://www.extension...bstract-algebra

For (convex) optimization, there are two great video lecture series by Steven Boyd at stanford:

http://academicearth...-optimization-i

http://academicearth...optimization-ii

For numerical analysis and more advanced numerical linear algebra, I really liked Gilbert Strang's (MIT) computational engineering videos,

http://academicearth...d-engineering-i

http://academicearth...or-engineers-ii

For a lot of the topics mentioned (topology, differential geometry, nonlinear dynamics, etc), basically anything where there is a continuum instead of just finite structures, it will be difficult to make much progress without a solid grounding in real analysis. There's a great set of video lectures by Francis Su from Harvey Mudd where I did my undergrad,

http://beta.learnstream.org/course/6/

(or http:/ /www.youtube.com/watch?v=sqEyWLGvvdw and click through to the other videos)

http://www.extension...bstract-algebra

For (convex) optimization, there are two great video lecture series by Steven Boyd at stanford:

http://academicearth...-optimization-i

http://academicearth...optimization-ii

For numerical analysis and more advanced numerical linear algebra, I really liked Gilbert Strang's (MIT) computational engineering videos,

http://academicearth...d-engineering-i

http://academicearth...or-engineers-ii

For a lot of the topics mentioned (topology, differential geometry, nonlinear dynamics, etc), basically anything where there is a continuum instead of just finite structures, it will be difficult to make much progress without a solid grounding in real analysis. There's a great set of video lectures by Francis Su from Harvey Mudd where I did my undergrad,

http://beta.learnstream.org/course/6/

(or http:/ /www.youtube.com/watch?v=sqEyWLGvvdw and click through to the other videos)