So I am planning to do a bachelor’s in Mathematics but I may want to switch into something to do with computer science or something along those lines later on. So I would like to know which math courses are useful for computer science. I’m guessing some courses may be less useful than others like topology (I guess). Anyways it would be great if someone can tell me what are the useful math courses for computer science. Thank you

Discrete math taken in freshman/sophomore probably is the most *useful* one, I think.

Linear algebra, abstract algebra, numerical analysis, and mathematical modelings can be useful as well. Many of statistics series courses and operations research classes such as LP/NLP/Dynamic Programming/Network Optimization Models/Simulations/DA/Markov Decision Process/Queuing Theory proved to be applicable to many CS areas.

Is abstract algebra really that useful though? I mean, unless you are doing stuff in programming language theory, it really isn’t that useful. I made it through my CS degree without touching rings, groups, fields at all.

Also, you mention a lot of statistics course, which is good but highly specific. I think you forgot the most fundamental: probability theory.

@idkName: No, I was referring to some OR classes instead of statistics. You’re right that **probability and statistics** are essential for data science, data mining, and the technology landscape of AI (e.g., machine learning, speech/facial recognition, autonomous system, neural networks, pattern recognition, etc.) and many other areas such as finance and insurance, quality control, etc as well.

And that’s why I still have my probability and statistics textbooks on my bookshelf.

In fact, I was reviewing some basic prob/stat theories for my project yesterday.

Discrete math, linear algebra, probability and statistics are the most basic math requirements for a CS major. However, you need additional math depending on your area(s) of specialization. For example, if you’re into cryptography, you do need abstract algebra, along with number theory, information theory, etc. And that’s just for classical (pre-quantum) cryptography.