Math for Machines

Graduate course on computer algebra

Course description

Computer algebra systems have become essential tools in a physicist’s toolkit, yet their inner workings often remain a mystery. As a result, it is difficult to predict whether a computation will take a few seconds or a few months. Understanding the algorithms behind symbolic computations can help identify bottlenecks and suggest more efficient alternatives.

In this course, we will design symbolic mathematical algorithms for computers. These algorithms often differ significantly from the heuristical methods we use in pen-and-paper calculations. We will start from the ground up, with the integer ring, and work our way toward more advanced topics such as finite-field reconstruction, efficient expression evaluation, multivariate polynomial factorization, and symbolic integration. Along the way, we will confront one of the central challenges in computer algebra: intermediate expression swell.

Lecture slides

Interactive notebook

See here for an interactive notebook containing lecture notes and examples.