What math should a computer scientist take in college?

I'm a computer science major and like many of us we have to take two additional sciences. These two additional science courses are in addition to three semesters of calculus,two semesters of physics, and one semester each of linear algebra and discrete math.

I could take the easy way out and take an algebra based astronomy course, but I want the most bang for my buck as it relates to my major.What other types of math classes should I take? I do enjoy math a lot and have always done well.


Solution 1:

I am assuming you are going to do theoretical research in Computer Science.

Since you have already taken Calculus, Linear algebra and Discrete Mathematics (which I presume includes Graph theory and some Combinatorics),

I would suggest

  • Abstract Algebra: For a motivation of this, try reading the paper Primes is in P which gives a polynomial time algorithm for prime number detection. Abstract Algebra has practical computer science applications too, for example: Coding Theory.

  • Probability: For a motivation of this, try reading some of the hardness of approximation results based on the PCP theorem.

You might also want to check out http://cstheory.stackexchange.com. The following two questions from there seem relevant (but hopefully, won't add to the uncertainty) and could perhaps be used to get ideas for future courses.

https://cstheory.stackexchange.com/questions/1920/examples-of-unrelated-mathematics-playing-a-fundamental-role-in-tcs

https://cstheory.stackexchange.com/questions/2571/what-kind-of-mathematical-background-is-needed-for-complexity-theory

Hope that helps.

Solution 2:

According to this (site about math for computer scientists), graph theory,combinatorics, probability, and number theory would be worth taking.

Solution 3:

Linear programming

If you are interested in game development you should also take a geometry course too.

Solution 4:

I would advise you to take advantage of college to study something sufficiently different if available, that could be even advantageous from a professional point of view:

  • biology / genomics / bio-modelization / physiology

  • captors / sensors / signal analysis / astronomy / experimental engineering

  • linguistics / phonology / ethnography / library science

My reasoning is that you are already accumulating sufficient CS culture to train yourself in nearby areas. You will work with other people with a strong culture in C.S. and math. That's probably only in college that you will have a hands-on experience on something else.

A potential recruiter can appreciate this openness, and most of the topics I quote are developing strong computer science interaction.