Python in my dynamical systems class

I have been using Mathematica in my dynamical systems class for a few years. I don’t have a systematic curriculum related to it, though, and need to develop clearer computational learning goals, as well as a pathway for students to develop computational skills.

Ideally, by the end of the semester, students would be able to do an analysis of a one-parameter dynamical system with the aid of computational tools. They would find fixed points, identify stability, create phase portraits and bifurcation diagrams, and perhaps create stability diagrams. I would expect them to be able to identify global bifurcations, as well. For limit cycles, I need to make a decision on my expectations. I suppose I would like for students to be able to create a curve of initial conditions, use “Events” in Mathematica of Matlab integration, and identify the stability / existence of a limit cycle in a 2d system.

At the moment I’ve been relying on Mathematica and some students have chosen to use Matlab. I would like to move towards Python. Currently the dynamical systems course is the only place students work with Mathematica, while Python is an option across a range of courses.

This means I need to learn how to set up Python for a class. At the moment I’m taking a look at Koehler and Kim, 2018 for some guidance on this. They go in the direction of Jupyter Notebooks so I will explore that for now.

1) Install the Anaconda application on my Mac.
2) Open the Anaconda Navigator: it has seven options when I first open it (Jupyter lab, Jupyter notebook, Qt console, Spyder, Glueviz, Orange 3, RStudio). The first four are already installed and I have the option to Launch them. For the other three, I have the option to install them. I’ll launch Jupyter notebook.

Koehler and Kim 2018: Interactive Classrooms with Jupyter and Python. The Mathematics Teacher. Vol. 111, No. 4 (January/February 2018), pp. 304-308 (5 pages)