Today's Thoughts

by JS

I was a math major in college. Though I’m sure the experience was beneficial, upon reflection I can’t identify how any content I learned in the math classes I took applies to computer science. I’m using a lot of Bayesian inference stuff right now, and PCA, but these two topics never came up in the any of the math courses I took, though linear algebra did cover Eigenvalues and Eigenvectors.

I recently read a book on category theory and computer science. The categorical view of computation is somewhat interesting, but category theory in general is much more complicated than the small set of categories relevant to computer science. In some sense, I’m still searching for uses of non-elementary mathematics in computer science.

An essential cornerstone of undergraduate mathematics is the study of abstract algebra. No undergraduate mathematics curriculum is complete without a good introduction to groups, rings and fields, up to at least Galois theory. Groups in particular, are supposed to be very general algebraic objects.

So my question to you, are there any topics in computer science that benefit from group theory?

I have a semi-answer, Polya’s Theorem. This is a theorem in combinatorics that depends on group actions, both in its statement and proof. It seems highly relevant to computer science, being such a pivotal counting result. And yet I can’t actually think of a specific use for it in computer science.

I guess I’m just wondering whether I’ve been wasting my time trying to learn mathematics.

UPDATE: Turing’s proof that the halting problem is not computable implies Godel’s incompleteness theorem. And Curry-Howard correspondence links type systems with constructive logic, which shows that certain areas of logic are best thought of computationally. I guess I’m interested in applications of group theory in part because it’s a step or two removed from logic.