Fields that require both CS and pure math

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.


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.


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.


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