This is a project-based course in which we'll learn computational skills useful across a wide variety of mathematical areas. The first half of the course will focus on learning to program in Python through fun exercises such as a Wordle solver and simple raytracer. We will cover some algorithmic concepts such as basic complexity analysis, DFS/BFS, and max flow-min cut. The second half of the course will be a tour of programming in different areas of mathematics. A tentative list of topics includes Gröbner bases, matrix multiplication, combinatorial enumeration, linear programming, and numerical methods for ODEs. Students are invited to propose and code up a final project relevant to their research interests.
We will have some guest lecturers present talks on how programming is impacting their research area in pure mathematics and how pure mathematics is impacting the world of pro- gramming applications. This course will not only be a gateway to mathematical programming but also broaden our perspective of how math is used outside the academic walls.