Some Personal Feelings and Suggestions for Taking Math Courses as a Computer Science Major Student


Requested by a friend, I list some of my feelings and suggestions on taking mathematics courses.  These are the things naturally flow from my mind; maybe they are in the order of importance (from my point of view). Also, they may be biased and incomplete due to my own interest and limited knowledge. 

 

Real and Complexity Analysis:

Introductory analysis courses help one to be “mathematically mature”, a phrase frequently appeared in senior level science and engineering courses. These two courses are the two very least requirements if one decides to spend a few years in his/her life to do some serious research. Furthermore, complexity analysis has been proven to have strong connections with asymptotic analysis.

 

Algebra:

I did not realize this is important until I start to pursue my postgraduate degree. Here are two major reasons of being a must-take course: 1. it is a language of modern mathematics. If you think mathematics developed before 20th century suffices for your research, then you can ignore what I am saying. Otherwise, you’d better have some knowledge in tensor, exterior, Galois, homology,  isomorphic, bilinear, etc… 2. cryptography. Playing around with building blocks would not be very interesting after all. Knowing Fermat’s little theorem at least helps you not to consider RSA as some magic brought from the outer space. Finally, if you got chance, take two courses in algebra, instead of one.  

 

Combinatorics and Graph theory

This makes you have good intuition on discrete structures. The combinatorics course I did consists of three parts: 1. primer dual---this relates to foundation of linear programming. 2. matroid, many people heard that matroid relates to greedy and I  believe very few people are ever serious about that becayse it is too difficult to understand. All in all, it is still an interesting topic and it also has some interesting relations with affine geometry. 3. generating function: something links complex analysis, Fourier Transformation, and recurrent relations.

           

Advanced geometry

This is beyond my knowledge. What I know is that differential geometry relates to control theory and algebraic geometry to coding theory. Certainly, knowledge of them helps to understand image processing and computer graphics.

 

Numerical analysis

Putting such subject here does not mean it is not important. It is another very fundamental course that I believe should be everyone’s must-to-take. Sometimes, as course project, as a small step of your research, or in many other scenarios, you just need some simple, fast-implement-able algorithms to find solutions for (system of) equations. A little knowledge about numerical analysis is exactly what you need.

 

PDE

This relates to stochastic calculus. In case you want to open a door to work in the strategy department in ibank, take it as early as possible (Though I still did not see other application). Well…one of ST Yau’s students says PDE and differential geometry have some relationship in a surprising way though very likely I cannot verify that in my life.....

 

Linear algebra:

Oop….forget this one. Although algebra generalizes the linear one, try to find some time to read things like “second course in linear algebra” to make sure you really understand eigenvalue (especially the second one….), spectral theorem, inner product, cross product, finding volume/area etc.

 

All the rest

Ideally, 1 or 2 statistics (beyond the introductory course), 1 or 2 topology before finishing the undergraduate degree would be great. Topology can be self educated if you’ve done 2+ algebras. Maybe some modern physics. Yao is great because he knows physics (take a look on this amazing paper: http://www.live.com/#q=Classical%20Physics%20and%20the%20Church-Turing%20Thesis&scope=academic&group=none&sort=none&offset=1).

 

你可能感兴趣的:(Some Personal Feelings and Suggestions for Taking Math Courses as a Computer Science Major Student)