This is a past course that has already concluded. If you are looking for a current course, please click here.

Welcome to Modern Computational Math! For course info and policies, please see the syllabus. For grades, log into Moodle. If you need help, contact Prof. Wright.

Online office hours: Email Prof. Wright to schedule an appointment.

Top

Today

Bottom

Friday

February 7

February 7

Introduction; Mathematica basics

Do the following before next class:

- Complete the syllabus quiz.
- Watch the Hands-on Start to Mathematica video. Then look through the resources in the Fast Introduction for Math Students.
- Complete the assignment at the end of the Introduction to Mathematica notebook. Upload your solutions to the three problem to Intro Mathematica assignment on Moodle.

Monday

February 10

February 10

Computing the digits of \(\pi\)

Do the following before next class:

- Start the \(\pi\) Project (due Friday). Implement at least one of the methods for approximating digits of \(\pi\). Look over the sample project report.
- For an explanation of why the sum of reciprocals of squares converges to \(\pi^2/6\), watch this video. For an explanation of why the product formula from last time converges to \(\pi\), watch this video.

Wednesday

February 12

February 12

Fibonacci numbers

Do the following before next class:

- Finish the \(\pi\) Project. Prepare a Mathematica notebook that contains your code and discussion. Pay attention to the grading rubric in the assignment file and refer to the sample project report. Submit your notebook to the Pi Project on Moodle.
- Investigate \( F_n^2 - F_{n+1}F_{n-1} \), where \( F_n \) is the \(n\)th Fibonacci number. Evaluate this quantity for lots of values of \(n\). What pattern do you observe?

Friday

February 14

February 14

Do the following before next class:

- Investigate \( F_n^2 - F_{n+1}F_{n-1} \), where \( F_n \) is the \(n\)th Fibonacci number. Evaluate this quantity for lots of values of \(n\). What pattern do you observe?

Monday

February 17

February 17

Fibonacci identities

Do the following before next class:

- Catalan's identity says \(F_n^2 - F_{n+r}F_{n-r} = (-1)^{n-r}F_r^2 \). Verify this for at least three values of \(r > 2 \). For each value of \( r \), check at least 100 values of \( n \).
- Vajda's identity says \(F_{n+i}F_{n+j} - F_nF_{n+i+j} = (-1)^n F_i F_j \). Verify this for at least six pairs \(i,j\). For each pair \(i,j\), check at least 100 values of \(n\).
- Submit a Mathematica notebook containing your verifications of Catalan's and Vajda's identities to the Fibonacci Assignment on Moodle.
**Please put your name at the top of your notebook.**(Note that this is an Assignment, not a Project.)

Wednesday

February 19

February 19

Pell numbers

Do the following before next class:

- Take a look at this paper, which proves various identities involving the Pell numbers. Read through the Introduction, which gives some background about the Pell numbers. Note that Proposition 1 corresponds to our observations in class. Look at the other propositions and theorems that the authors prove.
- Begin the Pell Project, which is due Monday.

Friday

February 21

February 21

Iterated functions: Collatz conjecture

Do the following before next class:

- Finish the Pell Project, which is due Monday.
- Continue your investigation of sequences that arise when iterating the Collatz function or some other function. Make at least three observations and formulate at least three questions about iterated functions. Submit your observations and questions to Collatz observations and questions on Moodle.

Monday

February 24

February 24

Iterated functions: logistic map and chaos

Do the following before next class:

- Read Mathematician Proves Huge Result on 'Dangerous' Problem and answer three questions on Moodle.
- Begin the Iterated Functions Project, due Friday.

Wednesday

February 26

February 26

Iterated functions and fractals

Do the following before next class:

- Read this blog post about periodic points of iterated functions. How does this relate to the logistic map?
- For more information about the Mandelbrot Set, see this Numberphile video with an explanation by Holly Krieger.
- Finish the Iterated Functions Project, due Friday (Moodle upload link).

Friday

February 28

February 28

Mean-median map

Do the following before next class:

- Watch
*This equation will change how you see the world*by Veritasium. Observe how the bifurcation diagram of the logistic map relates to the Mandelbrot set. There are even applications to fluid convection, neuron firing, and more. Wow! - Read the paper The Mean-Median Map by Chamberland and Martelli. Answer these four questions on Moodle before class on Monday.
- Continue computational investigation of the mean-median map.
*What do you observe? What do you wonder?*

Monday

March 2

March 2

Mean-median map

Do the following before next class:

- Finish modifying the function
**limitSeq**to solve the problem encountered in class. - Work on the Mean-Median Project, which is due Friday.

Wednesday

March 4

March 4

Do the following before next class:

- Finish implementing your
**isPrime**function, if not finished in class. - Finish the Mean-Median Project and submit your notebook to Moodle.
- Read "Why prime numbers still fascinate matematicians, 2,300 years later" and answer these four questions on Moodle.

Friday

March 6

March 6

Primes sieves

Do the following before next class:

- Finish implementing the Sieve of Eratosthenes.
- Read "The Sequence of Prime Numbers" (JSTOR link) and answer these questions on Moodle.

Monday

March 9

March 9

Prime sieves

Do the following before next class:

- Finish implementing the Sieve of Sundaram.
- Begin the Primes Project, due Friday.

Wednesday

March 11

March 11

Prime powers

Do the following before next class:

- Finish the Primes Project and submit your notebook to Moodle.
- Watch this video introduction to RSA encryption.
- Finish implementing
**modPow2**from class. Test your implementation for various inputs \(b\), \(e\), and \(m\). It should be much faster than**modPow**!

Friday

March 13

March 13

Mathematics of RSA cryptography

Do the following before next class:

**Please complete this survey to help Prof. Wright make appropriate course plans for next week and after spring break.**- Read The Euclidean Algorithm and this visual explanation. Then read The Clever Little Extended Euclidean Algorithm.
- Read this blog post about RSA encryption.
- Finish implementing
**modInverse**from class. - Choose two (secret) prime numbers with 30 digits each. (Use your
**fermatPrime**function!) Keep them in a safe place for the next week.

Monday

March 16

March 16

Encrypting text with RSA cryptography

Do the following before next class:

- Finish implementing the functions in the Mathematica notebook from today's class. Practice encrypting and decrypting messages.
- Use your secret primes to compute your
*public key*\( (e,n) \). Post your public key to the RSA Forum on Moodle. - Work on the RSA Project, due Friday. Send and receive secure messages with at least two other people using the RSA Forum. Use your Mathematica code to encrypt and decrypt the messages.
- Watch How Quantum Computers Break Encryption and read How a quantum computer could break 2048-bit RSA encryption in 8 hours.

Wednesday

March 18

March 18

Counting primes

Do the following before next class:

- Complete Exercises 1–5 in the Counting Primes Mathematica notebook. Upload your answers to the Counting Primes Assignment on Moodle.
- Continue to send and receive secure messages using the RSA Forum. Try to finish the RSA Project and upload your notebook to Moodle by Friday. (If you need more time due to the disruptions of this week, let Prof. Wright know.)
- Read The Riemann Hypothesis, explained. Answer these reading questions on Moodle.

Friday

March 20

March 20

Prime patterns and the Riemann zeta function

Do the following. Due to the disruption of recent days, deadlines have been extended until the end of the month, though it's best to finish current work while it's still fresh in your mind. If you have questions or need more time, email Prof. Wright.

- Complete the five exercises in the Primes and the Zeta Function Mathematica notebook. Upload your solutions to the Primes and Zeta Assignment on Moodle.
- Finish the RSA Project and upload your notebook to Moodle.
- If you want to do some computational math over the break, check back here soon for some optional reading and an extra credit project.

Stay well and enjoy spring break! No class March 23 – April 3.

Optional reading related to this course, all available online via the St. Olaf Library:

- Mathematics by Experiment: Plausible reasoning in the 21st Century by Jonathan Borwein and David Bailey — a sampling of many mathematical topics involving experimentation and computation
- Randomness Through Computation: Some Answers, More Questions by Hector Zenil — an exploration randomness and computation, with connections to many areas of math and science
- Number Theory: An Introduction via the Distribution of Primes by Benjamin Fine and Gerhard Rosenberger — If you have enjoyed our study of primes and want to learn more, check out this book!

Consider doing an extra-credit project: choose one of the four topics and investigate computationally.

Optional Python resources:

- Video: Getting started with Google Colaboratory
- Online Python notebook: Welcome to Colaboratory (We will use Google Colaboratory, or "Colab", for writing Python notebooks.)
- Python for Beginners, with links to many other resources, including this tutorial. Note that you don't need to install anything to use Python—just run your Python code in a Google Colab notebook.

Getting started after break:

- Watch the Welcome Back Video.
- If you haven't finished the RSA Project or the assignments from before spring break, please complete these.
- A video lesson for Monday, April 6 is posted below. Please watch this, and then join one of the class sessions on Zoom on Monday. (Check your email for the Zoom link.)

Monday

April 6

April 6

Introduction to Python

Do the following before next class:

- Complete any four exercises in the Intro to Python notebook. Submit your work by copying the sharable link to your notebook and pasting it in the text field of the Intro Python assignment on Moodle.
- View the Python resorces linked above in the spring break box or on the Links tab of this site.
- Check back for a video lesson in advance of Wednesday's class.

Wednesday

April 8

April 8

Yahtzee in Mathematica and Python

Do the following before next class:

- Finish implementing the Yahtzee simulation in Python. You don't have to submit it for a grade, but we will use it for further investigation in Friday's class.
- Check back for a video lesson in advance of Friday's class.

Friday

April 10

April 10

Yahtzee investigation and plotting with Matplotlib

Do the following before next class:

- Use simulation and make plots to answer the three questions in the Yahtzee Investigation notebook. Submit a link to your notebook to the Yahtzee Investigation assignment on Moodle.
- Please complete this short survey to help me understand how online Math 242 is going for you.
- Watch the video lesson (below) in advance of Monday's class.

Monday

April 13

April 13

Trouble simulation

Do the following before next class:

- Work on the Trouble Project, due Friday.
- If you haven't completed the short survey from Friday, please do so to help me understand how online Math 242 is going for you.
- Watch the video lesson (below) in advance of Wednesday's class.

Wednesday

April 15

April 15

One-Dimensional Random Walks

Do the following before next class:

- Finish the Trouble Project, which is due Friday (Moodle link).
- Investigate one-dimensional random walks. Try to work through item 4, distribution of locations, in the 1D Random Walks Starter Notebook.
- Watch the video lesson (below) in advance of Friday's class.

Friday

April 17

April 17

Two-Dimensional Random walks

Do the following before next class:

- Continue investigating 2D random walks. Make some observations and plots for the questions outlined in the 2D random walks notebook.
- Think of some other questions that you would like to investigate about random walks.
- Optionally, take a look at the Random Walks project, due next Friday.
- Watch the video lesson (below) in advance of Monday's class.

Monday

April 20

April 20

More Random Walks

Do the following before next class:

- Work on the Random Walks project, due Friday.
- Watch the video lesson (below) in advance of Wednesday's class.

Wednesday

April 22

April 22

Percolation

Do the following before next class:

- Finish the Random Walks project, due Friday (Moodle link).
- Plan an algorithm to determines whether percolation occurs. You don't need to implement your algorithm in code. Instead, make a plan on paper, and bring it to class on Friday.
- Watch the video lesson (below) in advance of Friday's class.

Friday

April 24

April 24

Percolation

Do the following before next class:

- Finish implementing the algorithm to determine whether percolation occurs.
- Investigate how the probability of percolation depends on the parameters \(p\) and \(n\).
- Watch the video lesson (below) in advance of Monday's class.
- Optionally, take a look at the Percolation Project, due next Friday.

Monday

April 27

April 27

Percolation

Do the following before next class:

- Work on the Percolation Project, due Friday.
- Watch the video lesson (below) in advance of Wednesday's class.

Wednesday

April 29

April 29

Markov chain inverse problem

Do the following before next class:

- Finish the Percolation Project, due Friday (Moodle link).
- Work on the exercises in the Markov Chain Inverse Problem notebook. These exercises will not be collected or graded, but they will help you understand material in the coming days. It is strongly recommended that you work on them before Friday's class. (solutions here)
- Watch the video lesson (below) in advance of Friday's class.

Friday

May 1

May 1

Markov Chain Monte Carlo (MCMC)

Do the following before next class:

- Finish the assignment in the Markov Chain Monte Carlo notebook. Your solution to this is due on Monday (Moodle link).
- Take a look at the Final Project document. Start thinking about what topic you would like to investigate and whether you would like to work alone or with a partner. Your topic selection is due next Friday, May 8.
- Watch the video lesson (below) in advance of Monday's class.

Monday

May 4

May 4

MCMC optimization: simulated annealing

Do the following before next class:

- Take a look at the Magic Squares Project, due next Monday.
- Think about a topic (and optionally a partner) for the Final Project.
- Watch the video lesson (below) in advance of Wednesday's class.

Wednesday

May 6

May 6

Finding magic squares via simulated annealing

Do the following before next class:

- Work on the Magic Squares Project.
- Choose a topic (and optionally a partner) for the Final Project. Submit your choice in this Google form.
- Don't forget about the Colloquium/Seminar assignment, if you haven't completed it yet: watch one of the seminars listed on the Links tab and answer the three questions on Moodle.
- Watch the video lesson (below) in advance of Friday's class.

Friday

May 8

May 8

Magic squares and traveling salespeople

Do the following before next class:

- Finish Magic Squares Project (Moodle link).
- Choose a topic (and optionally a partner) for the Final Project and submit your choice in this Google form, if you haven't done so already.

Monday

May 11

May 11

Final Projects

Do the following before next class:

- Work on your Final Project. Use the Final Project Update form to submit a brief update of what you have accomplished, what remains to be done, and how you would like to present.
- Complete the Colloquium/Seminar Assignment, if you haven't done so already. Watch one of the seminars listed on the Links tab and answer the three questions on Moodle.

Wednesday

May 13

May 13

Do the following before the final exam period:

- Finish your Final Project.
- Submit your Mathematica notebook or a link to your Python notebook to the Final Project on Moodle.
- Prepare to give a brief presentation (approximately 5 minutes per person) about your project at the final exam period, or record a video of your presentation and share it with Prof. Wright.
*Do not upload your video to Moodle*—just share a link to your video. - Please complete the Course Evaluation.

Tuesday

May 19

May 19

**2–4pm**: Final presentations for Math 242

**B**

Wednesday

May 20

May 20

**2–4pm**: Final presentations for Math 242

**A**