Skip to content

Commit 27c0382

Browse files
author
Daniel Precioso, PhD
committed
Update course structure and module descriptions for clarity and consistency
1 parent e763a95 commit 27c0382

2 files changed

Lines changed: 42 additions & 29 deletions

File tree

index.qmd

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Quick links:
1616

1717
## Course at a glance
1818

19-
- **Format:** 10 live in-person sessions
19+
- **Format:** 8 core modules plus 1 extra Lorenz module
2020
- **Tools:** Python, NumPy, SciPy, matplotlib, Streamlit, NetworkX
2121
- **Main goal:** learn modeling by building simulations you can explore and explain
2222

@@ -27,16 +27,31 @@ Quick links:
2727
- **Streamlit app** (interactive demos): `streamlit/`
2828
- **Datasets** used in network sessions: `data/`
2929

30+
## Course map
31+
32+
- [ODEs in 1D](modules/ode-1d/)
33+
- [ODEs in 2D](modules/ode-2d/)
34+
- [Coupled ODEs](modules/ode-coupled/)
35+
- [Collective Motion](modules/collective-motion/)
36+
- [Networks](modules/networks/)
37+
- [Partial Differential Equations](modules/pde/)
38+
- [Cellular Automata](modules/cellular-automata/)
39+
- [Agent-Based Modeling](modules/agent-based-modeling/)
40+
- [Extra: Lorenz Attractor](modules/lorenz/)
41+
3042
## What you will build
3143

3244
Across the course you will implement and experiment with:
3345

34-
- **ODE models** (SIR, spruce budworm, Michaelis–Menten)
35-
- **Nonlinear oscillators** (Van der Pol, FitzHugh–Nagumo)
36-
- **Reaction–diffusion PDEs** (finite differences + animations)
37-
- **Collective motion** (Vicsek collective motion + interaction)
38-
- **Networks** (metrics, spreading processes, real datasets)
39-
- **Cellular automata** (1D rules + traffic models)
46+
- **One-dimensional ODE models** (SIR, spruce budworm, Michaelis-Menten)
47+
- **Two-dimensional oscillators** (CDIMA, Van der Pol, FitzHugh-Nagumo)
48+
- **Coupled oscillator simulations** (Kuramoto synchronization)
49+
- **Collective motion models** (Vicsek, Couzin, predator response)
50+
- **Network analysis and spreading simulations** (metrics, graph models, SIS/SIR)
51+
- **Reaction-diffusion PDE solvers** (Gierer-Meinhardt, Gray-Scott)
52+
- **Cellular automata experiments** (1D rules and rule exploration)
53+
- **Agent-based traffic models** (flow, congestion, density sweeps)
54+
- **A deterministic chaos case study** (Lorenz attractor)
4055

4156
## Getting started locally
4257

syllabus.qmd

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,42 @@ format: html
66

77
## Program
88

9-
This course has **10 live in-person sessions**.
9+
This site is organized around **eight core modules** plus one extra Lorenz attractor module.
1010

11-
### 1D ODEs (SciPy + Streamlit)
11+
The sidebar navigation is the ground-truth order for the material, and this page follows the same structure.
1212

13-
Simulate classical one-dimensional ODE models (SIR epidemiological model, spruce budworm population model, Michaelis–Menten enzyme kinetics). Solve ODEs numerically with SciPy in Python, and build/deploy a simple Streamlit web app to explore parameter effects. Groups are assigned and remain for the whole course.
13+
### ODEs in 1D
1414

15-
### 2D ODEs (Nonlinear Oscillators)
15+
Build the first simulation workflow with one-dimensional ODEs. You solve IVPs with `scipy.integrate.solve_ivp`, compare trajectories, and interpret parameter changes through the SIR epidemic model, Michaelis-Menten kinetics, and the spruce budworm model.
1616

17-
Explore two-dimensional ODEs via nonlinear oscillatory systems: Van der Pol oscillator and FitzHugh–Nagumo model. Create animations with matplotlib and build interactive Python programs that let users set initial conditions via mouse clicks.
17+
### ODEs in 2D
1818

19-
### Coupled ODEs (Kuramoto Model)
19+
Move from scalar models to planar dynamics. You work with the CDIMA reaction, the Van der Pol oscillator, and the FitzHugh-Nagumo model, then animate trajectories and phase portraits to study oscillations and excitability.
2020

21-
Implement coupled ODEs, focusing on the Kuramoto model. Animate multiple plots simultaneously (e.g., oscillator evolution and a bifurcation diagram).
21+
### Coupled ODEs
2222

23-
### Collective Motion (Vicsek Model)
23+
Study synchronization through the Kuramoto model. You simulate many interacting oscillators, track order parameters, and connect time-domain behavior with summary diagrams.
2424

25-
Simulate flocking behavior using the Vicsek model. Implement interaction rules for “boids” and extend the simulation by treating the mouse as a predator and coding avoidance behavior.
25+
### Collective Motion
2626

27-
### Networks I (NetworkX Fundamentals)
27+
Model flocking and alignment in continuous space. The main case studies use Vicsek and Couzin-style rules, then extend them with interactive animation and predator avoidance.
2828

29-
Introduce NetworkX: build graphs, compute structural metrics (degree distribution, clustering coefficient, centrality), and visualize different network types. Establish foundations for modeling dynamics on networks.
29+
### Networks
3030

31-
### PDEs via Reaction-Diffusion Systems
31+
Represent systems as graphs with `networkx`. You measure connectivity and centrality, generate standard graph models, and simulate SIS and SIR spreading on synthetic and real networks.
3232

33-
Introduce partial differential equations through reaction-diffusion models (Gierer-Meinhardt and Gray-Scott). Implement 1D and 2D Laplacians with NumPy and animate spatiotemporal evolution to study Turing instability and pattern formation.
33+
### Partial Differential Equations
3434

35-
### Networks II (Spreading on Real Networks)
35+
Discretize reaction-diffusion systems in one and two spatial dimensions. You build Laplacians with finite differences, study Turing instability, and simulate Gierer-Meinhardt and Gray-Scott pattern formation.
3636

37-
Simulate spreading processes (fake news, epidemics) on real-world networks. Retrieve and process open-source network datasets, and investigate how network structure shapes propagation dynamics.
37+
### Cellular Automata
3838

39-
### Cellular Automata I (1D CA)
39+
Switch from continuous fields to fully discrete local rules. You implement one-dimensional cellular automata, build space-time diagrams, and compare how rule choice and initial conditions affect long-run behavior.
4040

41-
Introduce one-dimensional cellular automata as a framework for discrete dynamical systems. Explore deterministic and stochastic CA, and how simple local rules generate complex global behavior.
41+
### Agent-Based Modeling
4242

43-
### Cellular Automata II (Traffic Dynamics)
43+
Use traffic as the main agent-based case study. You implement the Nagel-Schreckenberg model, visualize stop-and-go waves, and measure density, flow, and congestion.
4444

45-
Apply cellular automata to traffic modeling with the Nagel–Schreckenberg model. Study congestion, flow, and phase transitions by tuning parameters such as vehicle density and maximum speed.
45+
### Extra: Lorenz Attractor
4646

47-
### Final Project Support
48-
49-
Wrap-up and support session for the final project: address remaining questions, clarify concepts, and help groups prepare deliverables.
47+
Extend the ODE material into deterministic chaos. You simulate the Lorenz system, plot the attractor in three dimensions, and measure sensitivity to initial conditions.

0 commit comments

Comments
 (0)