Before diving into the topics, It is necessary to gain * ahh.. moments* of basic to some degree of advance mathematical concepts. The explanation carried out on the following webpages are quite interesting and meaningful as well.

1. Better Explained by Kalid Azad

2. Science 4All by Lê Nguyên Hoang

3. Advance Mathematics

If you are going to obtain a computer science degree in order to pursue a career in technology, an important question has probably crossed your mind: **Does a computer science degree require a lot of math courses?**

Individuals who want to know whether obtaining the degree will necessitate the completion of a lot of math courses should know that the answer is generally "YES".

A good understanding of math is essential and, nowadays, the math requirement is starting to become more diverse.

1. Discrete Mathematics is the most important and basic thing. This will underpin your introduction to algorithms and teach you how to prove things mathematically and give you the fundamentals for analyzing data structures and algorithms.

Here are few resources to explore the field:

1.1) Mathematics & Computing from Satndford University

1.2) Discrete Mathematics with Applications 4th Edition, by Susanna S. Epp

1.3) Discrete Mathematics & Its Applications 7th Edition, by Rosen, K.H.

2. Calculus, while not directly used in intro-level computer science classes, is generally a sequence of courses offered by your university to buff up your math skills. As you start getting into things like numerical programming and machine learning, though, it will prove immensely useful. It's also a requirement for advanced probability/statistics courses.

Here are few resources to explore the field:

2.1) Calculus I for Computer Science & Statistics Students, Lecture Notes by Peter Philip

2.2) Mathematics for Computer Scientists by Janacek, G.J. & Close, M.L.

2.3) Origins of the Calculus of Binary Relations by Pratt, V., Standford University

2.4) Calculus with Applications, From MIT, USA

3. Probability is usually covered in some extent in your discrete math class. This will give you a better understanding of how to do numerical computation and simulation, and is fundamentally necessary for machine learning, one of the most important applications of computer science.

Here are few resources to explore the field:

3.1) Introduction to Probability & Statistics, Online Course from MIT, USA

3.2) Probability & Statistics for Computer Scientists, 2nd Edition by Baron, M.

4. Linear Algebra is primarily useful for machine learning and algorithms classes, but its importance in computer vision, computer graphics, machine learning, and other quantitative sub-disciplines is paramount.

Here are few resources to explore the field:

4.1) Linera Algebra, Online Course from MIT, USA

4.2) Basics of Algebra and Analysis
For Computer Science by Gallier, J. University of Pennsylvania, USA

4.3) Handbook of Linear Algebra, by Rosen, K.H.

These are the list of topics you need to explore for the better understanding of Data Structures & Algorithms.

1) **Proofs** {Propositions, Pattrens of Proof, Induction, Number Theory}

2) **Structures** {Graph Theory, Directed Graph, Relations & Partial Orders, State Machines}

3) **Counting** {Sums & Asymptotics, Recurrences, Cardinality Rules, Generating Functions, Infinite Sets}

4) **Probability** { Events and Probability Spaces, Conditional Probability, Independence, Random Variables and Distributions, Expectation, Deviations, Random Walks}

The book entitled Mathematics for Computer Science, written by Eric Lehman, F Thomson Leighton & Albert R Meyer, covers all the mentioned topics.

If you want to explore more: Choose your topic of interest from here (MIT Online Portal). Its completely free. **"HAPPY MATH"**