[Math] Is Mathematics graduation important for a Computer Scientist

educationlearningsoft-question

I know this might be a personal problem, but I often find some friends in the same problem as me so I think this might be helpful to them after all.
I am going to graduate in Computer Science in december, but I still don't feel comfortable enough with mathematics.
After trying to read lots of mathematical books, for instance, Markov Processes, Statistics and Artificial Intelligence, I realized I am very deficient when it comes to understanding more elaborated and advanced formulas (or even simple ones) and find it really annoying and hard to make things flow.
I usually have interesting adeas with abstract algorithms (like Particle Filters) but when I get to the implementation phase, I struggle to understand simple things involving mathematics.

So, I am really looking forward to improve my knownledge and was thinking about taking an undergraduate course in Mathematics. But, after looking at some curriculum, there seems to be lots of things that maybe is not usefull to me at this time, though I would really enjoy learning. I am currently very interested in Computer Vision, but again find lots of mathematics in image processing and I feel dummy using certain libraries such as OpenCV that does a lot to me but I can't understand what they are doing.

So my question is, would it be more profitable to do some graduation in Mathematics or should I study by myself?
What should I look for in Mathematics curriculums?
Would it be possible to study Mathematics by myself and improve it to the level where I can understand advanced concepts?

Thank you!

ps1: During my graduation, I studied (because this year is going to be mostly on the final project and technology related) these subjects:

  • Mathematics Foundations for Computer Science
  • Linear Algebra
  • Statistics
  • Quantitative Research
  • Image Processing (basics, mostly on 2D, 3D OpenGL)

ps2: I have been working as a programmer just for financial reasons (though I find it really interesting to develop code in more architectural layers), but I look forward to use programming as a tool for research and science as soon I am capable of doing it.

Best Answer

I have studied both CS and Math (I have written two MSc theses) and I can really capitalize on that. Still, I work in academia where the approach is much different. As a regular programmer you wouldn't need much math, but that also constraints areas you can work in. For example you don't need any calculus or differential geometry to use OpenGL, however if you would want to create your own image filters (not just use black-boxes), maybe do some audio-processing or physics, math is essential. What's more, from my perspective, all interesting problems involve math to some degree (on the other hand, from my perspective those wouldn't be interesting if it weren't for that math...).

Concluding first paragraph, I urge you to study math. The thing to decide is how you are going to do it: at the university or by yourself. The second option is available only if you are motivated enough, the first one is constrained by the time you have. It is more feasible for you to study by yourself if you want to learn just one domain that you like, however, probability that you will need more that one (e.g. calculus and probability theory, or differential equations and numerical methods, etc.) is huge, and then going to campus is recommended.

Whatever you do, please look for courses/books that deal mostly with applied math, as a computer scientist you more often use math that invent new theorems. About the curriculum -- it varies so greatly that I can't be of any help here, the only thing I can say, that nowadays probability theory (not just statistics) is present almost everywhere, and the calculus is sure second to follow (if not first).

(Please note that this only my opinion that is based on info from my friends (they may be numerous, but certainly this is not a representative sample). I do not have any real statistics to tell. To those that think I am skewed for my field: I deal with abstract algebra, graph theory and logic.)

Related Question