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