# Which Areas Of Mathematics To Study For Computer Science

Honestly, you don’t necessarily *need* to learn much complex mathematics. However, if you have an interest in theoretical computer science, machine learning, artificial intelligence, or other more advanced areas it may be useful to take some time learning as much as you can.

**Discrete Mathematics**
Discrete Math is the study of mathematical structures that are discrete (not continuous). It deals with countable sets of objects. Theoretical Computer Science deals heavily with graphy theory and logic when involved with discrete mathamatics. There are many additional areas of theoretical Computer Science that involve discrete mathematics, such as computability, automata theory, and formal language.

**Linear Algebra**
Linear Algebra helps to solve systems of linear equations with multiple unknown variables. It can be useful in a variety of areas in Computer Science, such as: data compression or cryptography. It can also help to understand the properties of the Fourier Transform which can apply to things such as signal processing. As an example, the fast Fourier Transform helps to multiple really large numbers quickly.

**Probability & Statistics**
Statistics and Probability can be useful in nearly all areas of Computer Science. You can use statistics for doing all kinds of data analysis. Some real world applications might include: Artificial Intelligence, machine learning, and advanced data analysis techniques. Statistics can help you study the behavior of numbers in certain distributions across a given sample. Two good examples would be: handling large set of data (SQL databases) or applications involving statistics in their calculations (financial data).

**Calculus**
Calculus can be particularly useful in Computer Science for many things. You may need to implement specific algorithms which utilize limits or functions where you need an approximate answer. Calculus can help you approximate these things. Lambda Calclulus in particular helps to provide a foundation for computation with functions. Basically, Lambda Calculus is a system for function definition, application, and recursion.

**Others**
By studying these 4 areas of mathematics you may begin to understand some of the fundamentals of more advanced areas, such as: machine learning, artificial intelligence, computer graphics, signal processing, compiler design, algorithms, etc. Most universities give you a descent set of mathemetics courses and you should at least be able to dabble enough in each area to build some foundational skills for some more advanced areas of study.