• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
DevLiquidKnight

Advanced Mathematics for Computer Science

33 posts in this topic

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?
0

Share this post


Link to post
Share on other sites
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.
2

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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?
0

Share this post


Link to post
Share on other sites
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.
1

Share this post


Link to post
Share on other sites
I enjoyed watching the videos at [url="http://aduni.org/"]ADUni.org[/url]. It shows an example structure of what undergrad CS education is like.
1

Share this post


Link to post
Share on other sites
[quote name='clb' timestamp='1332030366' post='4922930']It shows an example structure of what undergrad CS education is like.
[/quote]
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.
0

Share this post


Link to post
Share on other sites
On top of what everyone said, without a doubt take a graduate course in Neural Networks.
-1

Share this post


Link to post
Share on other sites
[quote name='Azh321' timestamp='1332179502' post='4923361']
On top of what everyone said, without a doubt take a graduate course in Neural Networks.
[/quote]
Why?
0

Share this post


Link to post
Share on other sites
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 [url="http://en.wikipedia.org/wiki/Numerical_analysis"]numerical analysis[/url], the [url="http://en.wikipedia.org/wiki/Newton-Raphson"]Newton-Raphson[/url] method of approximating the [url="http://en.wikipedia.org/wiki/Root_of_a_function"]roots[/url] 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 [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
1

Share this post


Link to post
Share on other sites
[quote name='daviangel' timestamp='1332200485' post='4923456']bottom line is that you can never take/have enough mathematics as someone once said I'm sure [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
[/quote]
thats why im majoring in math, I just want to be sure i dont take useless courses [img]http://public.gamedev.net//public/style_emoticons/default/wink.png[/img]
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
@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 :-) ).
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='Maze Master' timestamp='1332305063' post='4923837']
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,
[url="http://beta.learnstream.org/course/6/"]http://beta.learnstream.org/course/6/[/url]
(or http:/ /www.youtube.com/watch?v=sqEyWLGvvdw and click through to the other videos)
[/quote]
Cool beans [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
Been looking for an easy i.e. video intro to real analysis. I tried to read Mandelbrot's Fractal book and Kip Thorne's gravitation books a while back and both of them quickly lost me since right off the bat they both go into metric spaces [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img]
I can also brush up on monoids too now [img]http://public.gamedev.net//public/style_emoticons/default/laugh.png[/img]
0

Share this post


Link to post
Share on other sites
[quote name='alvaro' timestamp='1332017510' post='4922884']
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.
[/quote]

Alvaro, surely you know that chaos theory applies to any system with more than two parts. A very interesting article is "On the nature of turbulence". Another interesting book is "Galactic Dynamics". Surely Poincare would be offended if he had heard you disparaging his theory of chaos as such. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Anyway, otherwise inexplicable behaviour in physics, chemistry, and biology that was once labeled as noise and swept under the rug is now labeled as chaos. It's similar to how lightning was once labeled as the anger of the gods, but is now labeled as electrons and photons. I personally have no interest in knowing what makes up a lightning bolt, but science isn't about subjective opinion.
0

Share this post


Link to post
Share on other sites
Category theory is basically object oriented programming on steroids.
0

Share this post


Link to post
Share on other sites
[quote name='taby' timestamp='1332374893' post='4924136']
Alvaro, surely you know that chaos theory applies to any system with more than two parts. A very interesting article is "On the nature of turbulence". Another interesting book is "Galactic Dynamics". Surely Poincare would be offended if he had heard you disparaging his theory of chaos as such.
[/quote]

I am not saying that you won't encounter chaotic systems. If you do pretty much anything that involves iterating a function, you'll get there pretty soon. However, there isn't all that much that is useful that you can do with "Chaos Theory".

[quote name='taby' timestamp='1332374893' post='4924136']
Anyway, otherwise inexplicable behaviour in physics, chemistry, and biology that was once labeled as noise and swept under the rug is now labeled as chaos. It's similar to how lightning was once labeled as the anger of the gods, but is now labeled as electrons and photons
[/quote]
We understand lightning and we have the lightning rod to show for it. What has Chaos Theory given us? And if you do find some application, is it relevant to a CS professional?

[quote name='taby' timestamp='1332375169' post='4924137']
Category theory is basically object oriented programming on steroids.
[/quote]
They are both forms of abstraction, and the people that invented OOP borrowed lots of terms from category theory, although I don't think you can push the parallels beyond superficial similarities.
0

Share this post


Link to post
Share on other sites
While googling for topological mixing and bifurcation diagrams, I ran across this PhD thesis "CHAOTIC COMPUTATION By ABRAHAM MILIOTIS" from 2009:
http://etd.fcla.edu/UF/UFE0024234/miliotis_a.pdf

References 25-28, and the entire thesis actually, seem to be about the marriage of chaos theory and computation.

Then again, I really don't put any faith whatsoever in people with university educations, so it might be as much bunk as anything else. I'm sure there are many university educated people in this thread who have a subjective opinion on the matter. Hopefully they'll grace us with their knowledge.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0