Exploring Dynamical Systems using Python

Program Overview

We interact with a variety of complex systems every day whether they be mechanical, technological, biological, or social. When making decisions about designing or augmenting these systems, we often make assumptions about how they behave and evolve over time based upon simplifying heuristics or intuitions that later turn out to be incorrect. In this four week mini-series, participants will begin to learn how computer programming can be used as a tool to simulate and explore systems in a more methodical manner. This program is geared towards students with an existing ability to program in Python.

Program format

To allow participants the flexibility to work around their school schedules, this program will not have any live / synchronous meetings. Instead, all activity will happen online through a learning management system. Students will be expected to interact with each other and the instructor via chat and forums. There will also be weekly readings and programming assignments that must be submitted for review.


All applicants should have:

  • An ability to program in Python
  • A familiarity with using git for version control
  • Completed Algebra I

Application preassessment

Interested students will be asked to complete a preassessment exercise as part of the application process. Both timely completion and quality of the submitted assignment will be used to determine whether a student is accepted to participate. Details on the preassessment will be conveyed to applicants that submit an application form.