MAT 331, Spring 2025
Computer-Assisted Mathematical Problem Solving
Computer-Assisted Mathematical Problem Solving
Lectures: Monday 2:00-3:20pm, Wednesday 2:00-3:20pm, room S235 (basement of math tower)
Instructor: Karl Winsor (karl.winsor@stonybrook.edu)
Office: Math Tower 4-101B
Office Hours: Monday 3:30-5:30pm, Wednesday 12:30-1:30pm
Note: for this class, instructor office hours are all in 4-101B (not in the MLC)
Grader: Daniil Glukhovskiy (daniil.glukhovskiy@stonybrook.edu)
Office: Math Tower 2-113
Office Hours: Monday 1-2pm (in 2-113), Monday 3-5pm (in MLC next to S235)
Lecture Schedule (Tentative)
Week of January 27: Course overview and admin, Python 3 and Jupyter notebooks, introduction to Python: arithmetic, logic, lists, control flow, functions, libraries
Week of February 3: Continued introduction to Python, numpy and matplotlib, exact and approximate solutions to equations
Week of February 10: Approximating real and complex zeros of 1-variable functions, bisection method, Newton's method, Newton fractals
Week of February 17: Continuation of Newton fractals, solving equations versus optimizing functions, gradient descent for multivariable functions
Week of February 24: Continuation of gradient descent, introduction to probability, Stirling's approximation, law of large numbers, central limit theorem
Week of March 3: Gaussian and Poisson distributions, Monte Carlo methods, random walks with stopping conditions, introduction to graphs, random graphs
Week of March 10: Continuation of random graphs, connectedess and connected components, adjacency matrices and lists
Week of March 31: No notes
Week of April 14: No notes (glider notes pushed to April 21 and 28)
Week of May 5: ipynb, html (heat equation, reaction-diffusion systems)
Course Topics (Tentative)
Solving equations, approximate solutions, Newton's method
Fractals, recursion, computer graphics,
Probability, combinatorics, random walks, random graphs
Differential equations, numerical solutions, mathematical modelling
Current Exercises
Exercises: Last Updated May 9, 2025
Current Exercise Expiration Dates
Exercise 1 (Prime Numbers I): February 12
Exercise 2 (Who's aHead): February 24
Exercise 3 (Fibonacci's rabbits and Arnold's cats): February 28
Exercise 4 (Components of random d-regular graphs): April 7
Exercise 5 (Adjacency matrices and diameter): April 9
Exercise 6 (Round-robin tournaments): April 21
Exercise 7 (Directed cycles): April 21
Exercise 8 (Perfect matchings): May 5
Exercise 9 (Box counting dimension): May 5
Exercise 10 (Linearization and periodic trajectories): May 9
Exercise 11 (Predator-Prey equations): May 16
Exercise 12 (Approximation Error in Euler's Method): May 16
Exercise 13 (More Spiraling): May 16
Exercises should be submitted through Brightspace.
Projects
Project 1: Components of Random Graphs (Due by March 28)
Project 2: Diffusion-Limited Aggregation (Due by May 1)
Project 3: Systems of Differential Equations (Due by May 16)
Resources
IMPORTANT: make sure you are using Python 3, not Python 2!
A helpful reference for our introduction to Python 3 (contains much more material than needed for our purposes)
Make sure your Jupyter notebooks are using Python 3!
If installing from the above link, you only need the "classic Jupyter notebook", not the entire "Jupyter lab"
SBU virtual SINC site: W11 Desktop can run Jupypter notebooks with Python 3
Make sure you back up your work here! The Desktop is not saved after you leave the virtual SINC site.
Save files to your MySBFiles directory, or upload them to Google Drive, or email to yourself, etc.
CoCalc - Requires signing up for a (free) account
CoCalc and Google Colab are online options for running Jupyter notebooks.