Matthew L. Wright
Associate Professor, St. Olaf College

Modern Computational Math

Math 242 ⋅ Spring 2020

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

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

Top
Today
Bottom
Friday
February 7
Introduction; Mathematica basics
Do the following before next class:
Monday
February 10
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
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
Fibonacci identities No class—Prof. Wright is ill
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
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
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
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
Iterated functions: logistic map and chaos
Do the following before next class:
Wednesday
February 26
Iterated functions and fractals
Do the following before next class:
Friday
February 28
Do the following before next class:
Monday
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
Do the following before next class:
Friday
March 6
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
Do the following before next class:
  • Finish implementing the Sieve of Sundaram.
  • Begin the Primes Project, due Friday.
Wednesday
March 11
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
Mathematics of RSA cryptography
Do the following before next class:
Monday
March 16
Encrypting text with RSA cryptography
Do the following before next class:
Wednesday
March 18
Do the following before next class:
Friday
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.

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:

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

 Optional Python resources:

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
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
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
Yahtzee investigation and plotting with Matplotlib
Do the following before next class:
Monday
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
Do the following before next class:
Friday
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
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
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
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
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
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
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
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
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.
Do the following before next class:
Monday
May 11
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.
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
2–4pm: Final presentations for Math 242 B
Wednesday
May 20
2–4pm: Final presentations for Math 242 A