Learn to Compute!

Starting from Zero:  Basic coding skills in all-purpose languages such as Python can be picked up through online courses, including Michigan Coursera (free to Michigan students!). You can commit to an hour or two a week (perhaps in the summer, or during a semester you have a lighter load) to easily increase your skill.

An “easy” programming course, which will give you Rackham cognate credit, is SI 506 in the School of Information. Or you might prefer EECS 402 instead, which is designed for science and engineering students with no prior coding experience.

Subject specific languages (such as Macaulay for algebraic geometry) can be learned by running a little project with a fellow student to explore some example, or attending a summer workshop where these skills are taught. Magma and Sage are common among number theorists, though both can also do computations in algebra, geometry, combinatorics, dynamics, and group theory.

Even teaching Math 215/216 can give you an opportunity to develop or improve  Matlab skills. Teaching as GSI for EECS courses is a real possibility for Math PhD students as well; talk to Karen Smith or Anna Gilbert if you might be interested in this opportunity.

Consider organizing a summer seminar or workshop in which students  present to eachother some computing they have done, or would like to try, in their mathematical work. This could be informal, in the way students currently organize “Learning Seminars” or QR study groups.

Consider taking at least one course (eg. for Rackham’s cognate requirement) to improve your computing skills, even if they are already substantial. Be sure to get advice as courses vary with instructor and the numbers can be deceptive.

Some instructors of computing courses (such as Math 571 or EECS 545)  require students to simply know “any higher level computing language,” which would include Matlab. Typically, Python is used for data science applications, R in statistics, and Matlab in Engineering.

About EECS courses and instructors:  There are actually  two departments (CSE and ECE) making up what used to be called “EECS.” They still share courses and take turns teaching them.  ECE is more of the “hardware” side and CSE more of the “software” side. Always investigate the particular instructor for any course you are considering taking because courses can vary depending on the instructor and whether that instructor is CSE or ECE.  Many math PhD students find they prefer courses taught by “theory” professors in CSE. A partial list of such instructors that have been recommended include Seth Pettie, Chris Peikert, Ilya Volkovitch, and Satender Singh.

Students might also consider attending the Theory Seminar in CS, the Communications & the
Signal Processing seminar, and/or the MIDAS seminar (which is on central campus). Often, you don’t need to know any actual software to enjoy the Theory Seminar.