By - man_wif-waluigi-hed
I think graph theory is pretty cool and it’s def less applicable then the ones you mentioned.
numerical analysis is dope
If you can take specific courses for number theory and graph theory, those could potentially prove quite helpful.
I hear that abstract algebra is the core of cryptography
Example of a course teaching Formal Methods: [https://ep.jhu.edu/courses/605729-formal-methods/](https://ep.jhu.edu/courses/605729-formal-methods/)
Abstract algebra (group theory, rings, fields, category theory) has a ton of deep connections to CS and will give you many new tools to analyze and abstract your programs.
Combinatorics and optimization classes are also a huge boost imo. Game theory, coding theory, simplices and integer programming, scheduling theory, flow theory, etc all fall under this general umbrella and can be really helpful parts of your toolkit for solving tough problems.
Technically all the things I described can fall under the purview of "discrete math", but there's so much depth to all of these that each warrants multiple courses worth of content.
Yeah actually for most project, calculus is least useful for cs