This summer invest in your math education.

Undergraduate students often ask me for advice for how to improve themselves as mathematicians. There are many answers to this question: you can focus on learning new mathematics, you can work on your programming skills, you can improve your career prospects by working on professional development, …

This post is the result of many conversations and coffees with undergrads; It is the advice that I would have given myself as a second-year undergrad at the University of Winnipeg. These 35 projects will also provide necessary skills for completing a Ph.D. in Mathematics and will increase your employability.

Some of these projects will take an afternoon (“Learn how to make a bibliography in LaTeX”) and some might take a month (“Make a Predator-Prey Visualizer”). There is no time limit and no test, so take your time and make it your own.

#### Table of Contents

- Math Skills
- Reading
- Math Projects
- Teaching
- Professional Development
- Other Skills

#### [B] Beginners

Some projects are marked with a [B]. These are especially well-suited for beginners.

## Math Skills

The most common way that we think of improving as mathematicians is to “learn more math”. Sometimes it’s about learning more, and sometimes it’s about learning *better*. Here are some skills you can work on and some topics you should aim towards.

#### [B] Basic Set Theory

As soon as possible you should become familiar with the interactions of set unions and intersections with functions and inverse images. This is a prerequite to understanding analysis and topology.

- Learn all of the words in section 1 of “Things You Should Know”. Know how to prove things about them and draw pictures to represent them.
- Prove that the composition of two bijections is a bijection.
- Prove all of the facts in section 3 of “Things You Should Know”.
- Prove that a function from a finite set into itself is an injection if and only if it is a surjection. Show that this is not always true for infinite sets.
- Learn the definition of a topological space. Prove that the intersection of an arbitrary family of topologies on a set X is also a topology on X.

#### Take an Inquiry-Based Learning (IBL) Course

IBL is a style of learning and teaching that focuses on students asking questions, making hypotheses, making mistakes and writing proofs themselves. The courses contain definitions and theorems, but no proofs (you fill them in yourself!). The courses move step by step and break down large theorems into manageable chunks.

- “Analysis”. This is roughly equivalent to MAT 157 at the University of Toronto.
- “IBL Intro to Abstract Algebra”.
- “Number Theory Through Inquiry”.

#### Review and Master

Becoming stronger in mathematics is not just about looking forward and learning new things, it’s also about mastering old material, and gaining new perspectives on it. These projects focus on “looking backwards” so that you’ll have an easier time looking forwards.

For these projects, pick a technique or topic from a course you’ve completed recently. For example “Cantor’s Diagonalization Method”, “Linear Algebra in Differential Equations”, “Picture Proofs” or “Completeness of the Real Numbers” would all be good choices. At the end of these exercises, you will be a master of the material.

- Review the material from your notes.
- Explain the theorems and definitions in your own words. Write a couple of sentences explaining the relevance of each definition and theorem. If there are multiple similar theorems or definitions with slight variations, explain the differences and what makes each version special.
- Find other notes that explain the same material.
- Think of the likely places that readers could get confused, and point out how to resolve these issues.
- Write your own version of the proofs of the theorems. Look for different proofs and explain the key differences in each.
- Include connections to other branches of math and science if you can. For example, Cantor’s Diagonalization Method is the main proof technique for the Halting Problem.
- Find or invent exercises and questions that go with the ideas. Some questions should test basic understanding of definitions and theorems, some should point out common misunderstandings readers could have, some should require the reader to apply an old technique in a new way.
- Write up these explanations in a LaTeX document. You now have a chapter of a textbook. Congratulations!
- Move on to another topic that you want to master.

## Reading

Math is a technical language and reading it is a skill that must be developed. When you first start reading papers your progress will be very slow. Don’t get discouraged! Write down lots of questions, take time to think about things, be skeptical. Just because it got printed in a journal doesn’t make it true!

#### Read a Book

Go through a math book that isn’t a textbook. Ask questions and talk to people about it.

- “The Mathematical Colouring Book” by Alexander Soifer.
- “Godel’s Proof” by Nagel and Newman.
- “Proofs from the Book” by Aigner and Ziegler.
- “How to Solve It [Large PDF]” by George Pólya.

#### Read a Paper

A lot of a mathematician’s time is spent reading papers and perusing the literature. It requires skill to read papers and generally speaking they are not written in a way that makes it easy to understand what’s going on. Read these papers and keep track of things you don’t understand and questions that come up. Try to write down a proof for anything they claim is “obvious” or “clear” or “easy”. The following papers really only assume a working knowledge of linear algebra and calculus

- “Envy-Free Divisions” by Seth Unruh.
- “Turning the Lights out in Three Dimensions” by Jacob Tawney.
- “Iterated Perpendicular Constructions from Interior Points on N-gons” by Ivan Corwin.
- An exposition of transcendental numbers by Jeremy Booher. A more intense paper than the other three. By the end of this you will see that and are transcendental numbers.

## Math Projects

Learning math for its own sake is fine, but sometimes its nice to have specific goals in mind. These projects will help you learn a topic while trying to accomplish a well-defined, achievable goal.

These are only sketches of projects; remember that you can add as much to them as you want. Personalize them! Go further!

#### [B] Characterize all Cyclic Groups

This is a project for people who have a bit of mathematical maturity (first or second year undergrad), but have not learned about groups yet. By the end of this project you will know exactly what every cyclic group looks like. By the end of this you can stop saying “I just don’t understand group theory”.

- Learn the definition of a group. (Look at some examples if you want.)
- Learn the definition of an abelian (i.e. commutative) group. Learn the definition of a cyclic group. Prove that every cyclic group is abelian.
- Prove that every subgroup of a cyclic group is cyclic.
- Let G be a finite cyclic group, and let x be an element of G. State and prove a theorem that relates the order of x with the order of G.
- State and prove a theorem that characterizes the cyclic groups. (It should contain a list of different groups, such that every cyclic group shows up on that list.)

If you like this type of math, one possible follow-up project is to characterize all abelian groups. This is a bigger task, but is often the end goal of a first course in group theory.

#### Make a Predator-Prey Visualizer

Your goal is to create a simulation of a predator-prey system along the lines of this. You will need a little bit of coding skill and you will need to know at least first year calculus. I will sketch out some steps you could take, but I will be vague. You should take things into your own hands and do extra research if needed.

- Read the Wikipedia article on the Lotka-Volterra equation.
- Here is a nice set of lecture notes by David Hyde [PDF] that explain the relevant notions and has many good exercises.
- You will need to learn some numerical methods for solving differential equations.
- Forward Euler.
- Backwards Euler. This is conceptually more difficult, but is more stable.
- RK4, the Runge-Kutta method (which is a special case of the Adams Bashforth method). Even if you don’t understand the (messy) theory behind it, you can still code it.

- Add in carrying capacity to your system.

## Teaching

Teaching is hard. Teaching is a skill. Teaching is extremely rewarding.

Use some of your free time in the summer to develop your teaching muscles. Good preparation outside the classroom will have a noticeable impact inside the classroom, even if it’s only a result of your higher confidence.

#### Redesign a Course

Take the syllabus of a course you’ve taken in the past and reorganize the syllabus. Try these five different exercises.

- Remove every section that can be removed without compromising the main goal of the course. See how much is essential, and how much is extra.
- Change the order of the material if possible. Can you present things in a more logical order?
- Find an assignment you didn’t like and redesign it. Make sure that your assignment accomplishes something.
- Redesign the course as though it was going to be taught to high school students in their last year of school. How does the course change? How do the assignments and tutorials change?
- Design your own final exam. Make sure it covers all of the relevant material and fairly tests the students. Can it be written in 3 hours?

#### Preparing Lectures and Tutorials

Take your notes from a lecture or tutorial you’ve given in the past, and try these exercises.

- Figure out the goal of the lecture and write it down. Make sure that everything in the lecture is designed to reach that goal. Remove things that aren’t helping.
- Add signposts to your written notes. These help direct your class as to where you’ve gone and where you’re going.
- Take a guess as to the three parts of your lecture that are hardest to follow. What would your students want that would help them follow?
- Think of and write down five questions students would have during your lecture, and write answers to those questions.

#### Stock Lectures

You should have at least three lectures ready that you can give at any moment. Use this summer to develop them all.

- Prepare a one hour lecture for 30 general high school students.
- Prepare a 30 minute lecture for bored parents.
- Prepare a one hour lecture for undergrads to get them excited about math.

## Professional Development

The model of a mathematician as a crazy-haired recluse working in isolation is far from how modern mathematics is practiced. Now the emphasis is placed more on connecting with other researchers, both mathematicians and those from other disciplines.

These projects will help make it easier to connect with others, and make it easier for them to reach out to you. Start early in your career!

#### Become Familiar with the Important Math Websites

There are many tools available for connecting with other math researchers and facilitating your own research. For each of these sites you should be able to (1) use them for their intended purpose, (2) navigate them, and (3) give a one sentence summary of them.

- ArXiv.
- MathSciNet, and to a lesser extent Google Scholar.
- MR Lookup.
- MathOverflow.
- MathStackExchange.
- Terry Tao’s Blog.

#### Form a Web Presence

When you go to conferences, or contact a professor, or apply for a job, people will look you up online, and you want them to find the good stuff. Make sure to keep these things active and up to date!

- Create your own website. Include your CV, a picture of yourself and some info about your mathematical interests. Include any relevant experience you have, some conferences that you have attended, some textbooks you have studied, some of your other online profiles (like Project Euler).
- Create a LinkedIn profile.
- Make sure your privacy settings on Facebook are high enough so that a prospective employer can’t see you doing stupid things. (In general you should also just avoid posting you doing stupid things.)

#### Attend Conferences

Networking with other mathematicians is an essential step in your career. Get out there! Start by reading this article by Andrew Schultz about the importance of networking.

- CUMC at the University of Alberta June 17-21, 2015. This is
*the*undergraduate conference in mathematics. You should only not go if you have an important reason not to. - Ottawa Math Conference at the University of Ottawa June 19-20, 2015. Undergrads and Grad students welcome!

If you are a graduate student, you should also look in to conferences in your specific area.

#### Find a Mentor

You should have a person you trust, who is older than you, and that you can ask questions to about the path you’ve chosen. If you’re an undergrad, this can be a senior undergrad, or a grad student. If you’re a grad student, this can be a senior grad student, a post doc, or a young faculty.

- Take your mentor out for coffee about once a month or every other month. This can vary depending on your mentor, but once a month is a good place to start.
- Tell your mentor your concrete goals, both short term (1 month), medium term (1 year) and long term (5 years). Figure out if you’re on the path to accomplishing those goals.
- Troubleshoot upcoming difficulties and debrief about past difficulties. Maybe you have to give a presentation at a conference, maybe you already did and it went horribly. Your mentor should have some experience to help you understand things that are giving you trouble, and how to approach them. They are there to bounce ideas off, not to tell you what to do.

## Other skills

This doesn’t look like a good way to slide into a base. It looks like the fielder’s leg is in a dangerous position.

To the modern mathematician, a computer is an essential tool. We use it to compute, disseminate, connect, hypothesize, record, verify, advertise, …

Even if you don’t plan on doing “math with computers”, your understanding of mathematics is enriched by knowing how computers interact with mathematics. Or, from a practical perspective, you are more employable outside of academia with coding skills.

#### Learn How to Code

At some point you need to feel what it’s like to “think like a programmer”, and that will give you a richer understanding of what it means to “solve” a math problem.

**[B]**Learn Python at Codecademy. This website is fun, interactive and addictive. Python is a powerful, clear, flexible language that can be used to code many mathematical algorithms.- Learn R at Try_R or Coursera. R is a very stats and data focused language.
- Solve the first 25 Project Euler problems. These are all math/coding problems that involve you writing a program. After about 20 problems you will start to “think like a programmer”.
- Subscribe to /r/dailyprogrammer and do all the challenges from a single week.

#### [B] Learn LaTex

LaTex is the language in which all mathematical writing is done. It is essential that you know how to produce LaTeX documents by the beginning of your third year of undergrad. You will need two things (1) an editor (like Notepad++, TeXnicCenter, etc.) and (2) the TeX (like MiKTeX). If this is the first time you’ve ever done something like this, it will be annoying and take you a while, but it is important.

These projects will give you skills you will need and use.

- Make a pdf that says “Hello World”. This guide will be handy.
- Make a pdf that includes a picture. Learn how to do that here.
- Make a command that takes two arguments “x” and “y” and returns the set “{x : y}”. Learn about “newcommand” here.
- Make a TeX document that imports all of its definitions and commands from another TeX file. Learn how to use “include” here.
- Label a theorem, a section and a picture, then reference them later in a document. It is best practice to use \label and \ref when referring to particular objects in your TeX.
- Make a bibliography using BibTex where the references are contained in a separate file. Learn about external bibliographies here.
- Make a presentation with two slides with Beamer: one slide that says “Hello World”, one that says “Thank You”. Beamer is the standard package for presentations.
- Write your CV in LaTex.

#### Learn the Basic Sorting Algorithms

Besides stretching your mathematical muscles, if you ever have to sort assignments or tests as a TA you’ll be happy that you know some quick sorting algorithms.

- MIT OpenCourseWare video: “3. Insertion Sort, Merge Sort”. The other videos in this series explain other types of sorting algorithms.
- Sweet retro computer science video from the University of Toronto: “Sorting Out Sorting”.
- Some Animations: “Comparisons of 9 Sorting Algorithms” and “15 Sorting Algorithms in 6 Minutes”. An interactive animation that helps you compare different algorithms.

#### Hack

Mathematics is about understanding rules as they are, not rules *as they should be*. Hacking is about exploiting the disparity between these things.

- Learn how to lockpick [PDF] and shim a padlock. See /r/Lockpicking.
- Complete the first 10 levels of NotPron. This is a 140 level internet riddle that requires a lot of ingenuity.
- Complete all 11 Basic Missions on Hack This Site!.

#### Become Familiar a Computer Algebra System (CAS)

Many mathematicians use computers to help with computations. In this project choose any one of the popular CAS: MatLab [Tutorial 1 and Tutorial 2], Mathematica [Tutorial], Sage [Tutorial] or MAPLE – [Tutorial 1 and Tutorial 2]. Generally speaking, MatLab is the one that sees the most use in industry. Some of these are very expensive, but some are free. Check with your university to see if they have some software you can use for free or for a discount.

Here are some sample tasks that you should be able to complete in the CAS of your choice.

- Find the prime factors of 45750341.
- Find the determinant of the matrix:

1 2 3 4

2 3 4 5

1 1 0 0

0 1 1 0

- Find the eigenvalues of the Petersen Graph.
- Use the Monte Carlo method to estimate as follows: Randomly pick points from the square and calculate what percentage of them are in the unit circle.
- Write a program that will calculate the Lagrange interpolating polynomial for a finite data set in the plane.
- Some problems arise when computing derivatives using CAS. Read about this phenomenon and how to avoid it [PDF]. Also learn about Richardson Extrapolation.

## Thanks for Reading!

#### Feedback

Please let me know if you like this type of content, find it useful, or if you completed one of these projects and you feel proud of it.

Leave a comment on this page, or email me, or PM me on Reddit.

#### Thank You

This post was made possible by many conversations with colleagues and students. Special thanks to Parker Glynn-Adey, Alfonso Gracia-Saz, Tyler Holden, Ivan Khatchatourian, James Mracek.