Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm mainly a CS major, but I also want to learn more advanced mathematics. I see lot of cross over between CS and applied math, same can't be said about pure math.

Definition of 'advanced': Something a pure math major learns during and after late undergraduate years.

What are the fields that combines advanced mathematical topics with computer science?

Theoretical computer science and computational group theory are good examples.

share|cite|improve this question
There are lots of interesting answers to this question, but I don't know what is meant by CS in this context. Is it programming? Theory of computation? Formal Languages? Analysis of algorithms? Something else really cool that I forgot to mention? – Tom Stephens Aug 9 '10 at 15:28
The more theoretical part of CS, what you said except programming are what I was thinking. Other possibility are database theory, artificial intelligence and networks. – Chao Xu Aug 9 '10 at 15:57
Modern computer algebra. – user2468 Aug 24 '12 at 14:45

12 Answers 12

Computational algebraic geometry is the first example that comes to mind. It's used in phylogenetics, see here (you can also look up the book Algebraic Statistics for Computational Biology). It also shows up in robotics and control theory, but I know a lot less about that.

Polytopes (see Coxeter - Regular Polytopes or Grunbaum - Convex Polytopes) also appear in a lot of applications. The only specific one that comes to mind at the moment is the problem of figuring out whether an object (like a robot) can traverse a given maze. The algorithms use the convex hull of the robot to test whether or not it could traverse the maze. I'm sure there are a lot of people more knowledgeable than me on the subject.

share|cite|improve this answer

Cryptography is a field which requires lot of Number theory. Formal languages and automata theory requires some Graph theory, and these automata things can be connected to computer science as well.

share|cite|improve this answer

Semantics of programming languages: the modern version is a mixture of type theory and category theory. Also, there is a lot of subtle issues in logic (linear logic in particular) that crops up.

Design of programming languages: Things like linear logic have influenced the addition of a number of features to languages (or reasonable restrictions). monads in Haskell come straight out of category theory.

Analysis of programming languages: static analysis is nowadays all based on abstract interpretation, which is fundamentally an application of lattices and of Galois connections.

share|cite|improve this answer
+1 category theory and monads! – awshepard Aug 20 '10 at 12:37

Robotics. I don't know much about this field but from a theoretical point of view a lot of lie group theory is used (to describe joint motion and position). In particular the lie theory of rigid motions i.e. of the Euclidean group $SE(3)$ is relevant. I would imagine CS would come in more from the computational side when larger calculations are involved. Also its robots which need to be built so plenty of mechanical and electrical engineering going on here.

This is mostly based on a quick glance at Which is written for an undergraduate math or engineering major.

share|cite|improve this answer

Much of data mining requires an understanding of high dimensional geometry. Lots of machine learning also requires an understandind of advanced probability theory.

share|cite|improve this answer
+1. Crucial to data mining applications, and also speech recognition, is concept analysis, which involves fairly intense probabalistic logic and very large dimension linear algebra. – Charles Stewart Aug 9 '10 at 8:26

I am working with the Schroedinger equation, which surprisingly leads to graph theory (via cell decompositions).

To get a good grip on these graphs, I did a lot of programming, since doing it by hand takes way too much time.

I generated about 100 examples, and from there, I could easily see what needed to be proved, something which was quite hard prior to that discovery.

It is now part of my thesis (Original article paywalled).

share|cite|improve this answer
sounds very interesting! Did you write up a note about it? – anon Aug 8 '10 at 13:26
The result will be published later this year. – Per Alexandersson Aug 9 '10 at 6:37
any chance you could link it here (since this was over 3 years ago)? – hadsed Nov 29 '13 at 23:21
Added now, see link. – Per Alexandersson Nov 30 '13 at 8:26

Number Theory: many large numbers were tested by using computers.

Linear programming: many algorithms have been developed.

share|cite|improve this answer

Today is an open question to find an efficient algorithm/data structure that can be used to index/search information in a high dimensional space (ie d > 20).

I've seen approaches using computational geometry, space filling curves, principal component analysis, etc.

share|cite|improve this answer

Computer graphics is a prime example of a field that needs sophisticated CS and math.

share|cite|improve this answer
Also computer vision. – Peter Sheldrick Aug 24 '12 at 15:45

Questions on computational complexity can be asked about problems and algorithms arising in any subject including pure mathematics subjects. e.g. in computational number theory, computational topology, etc, and as Igor Pak describes on his blog, in compuational combinatorics.

share|cite|improve this answer

There is a lot of opportunity for merging the fields in designing advanced real-time embedded controllers. Embedded controllers run everything from your car's ECU to the flight control system on a jetliner. There is demand to develop control algorithms that allow for better fuel efficiency, expanded performance envelopes, better on-board diagnostic and prognostic capabilities, redundancies and automated detection of sensor or component failures, etc.

Most embedded controllers now can clear basic linearized models between 100 Hz and 10 kHz. However, some of the advanced algorithms cannot be cleared in real time by existing components. There are two sides of this coin: one is hardware development; the other is algorithm development. Both sides of this coin depend a lot on CS theory as well as pure and applied mathematics. Things like distributed on-board processing, real-time parallel computation, over-the-air streaming of compressed real-time data, etc. are all of widespread interest in academia and industry.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.