Very good and important question! A good understanding of mathematics is essential for every computer scientist, and the mathematical requirement is starting to become more and more diverse.
- Discrete Math is the most important and basic class for computer science, and for this reason it is usually offered in CS departments instead of math departments. This class will reinforce your introduction to class algorithms and teach you how to mathematically prove things and give you the basics for analyzing data structures and algorithms.
- Calculus , while it is not used directly in in-class computer science classes, is usually a series of courses offered by your university for your math skills. As you begin to penetrate things like numerical programming and machine learning, this will be very helpful. This is also a requirement for advanced probability / statistics courses.
- Probability is usually considered to some extent in your discrete mathematical class, but you will want to take a class on continuous probability distributions and statistical inference , perhaps in the department of mathematics and statistics. This will give you a better idea of how to do numerical calculations and modeling, and is fundamentally necessary for machine learning , one of the most important computer science applications.
- Linear algebra is a class that you find primarily useful for machine learning and (advanced) classes of algorithms, but its importance in computer vision, computer graphics, machine learning, and other quantitative subdisciplines is paramount.
However, if an introductory word is available for a machine learning class, they are likely to cover enough linear algebra and other things that you can get with the base probability class. Nevertheless, for postgraduate study in computer science, understanding of all areas of mathematics is important.
In addition to undergraduate mathematics courses of a higher level are useful for certain theoretical areas of computer science (for example, algorithmic game theory that intersects with economics), and especially in going beyond the practical application of machine learning to develop new algorithms. These courses include:
Real analysis , including measurement theory, where you find that if you study probability and calculus long enough, they converge again. Analysis is usually useful when you start working with algorithms related to numbers.
Optimization , including linear optimization , convex optimization , gradient descent , etc. In many cases, the “learning” of the machine learning model basically comes down to optimizing the objective function, and the properties of this function, such as convexity, have a big impact on how easy it is to optimize.
Numerical methods : some would not consider this mathematical class as such, and with the transition of algorithms and theory to an imperfect representation of floating point mathematics, there are many practical problems that need to be solved. For example, log-sum-exp trick .
For those who will be in the "data science" and related fields, extensive statistics and especially causal conclusion are very important. There are many things to know, mainly because access to a lot of data causes this problem for the uninitiated.
Andrew Mao Feb 14 '13 at 6:02 2013-02-14 06:02
source share