This course presents a broad introduction to stochastic processes. The main focus is on their application to a variety of modeling situations and on numerical simulations, rather than on the mathematical formalism. After a brief resume of the main concepts in probability theory, we introduce stochastic processes and the concept of stochastic trajectory. We then broadly classify stochastic processes (discrete/continuous time and space, Markov property, forward and backward dynamics). The rest of the course is devoted to the most common stochastic processes: Markov chains, Master Equations, Langevin/Fokker-Planck equations. For each process, we present applications in physics, biology, and neuroscience, and discuss algorithms to

simulate them on a computer. The course include “hands-on” sessions in which the students will write their own Python code (based on a template) to simulate stochastic processes, aided by the instructor. These numerical simulations are finalized as homework and constitute the main evaluation of the course.

1) Basic concepts of probability theory. Discrete and continuous distributions, main properties. Moments and generating functions. Random number generators.

2) Definition of a stochastic process and classification of stochastic processes. Markov chains. Concept of ergodicity. Branching processes and Wright-Fisher model in population genetics.

3) Master equations, main properties and techniques of solution. Gillespie algorithm. Stochastic chemical kinetics.

4) Fokker-Planck equations and Langevin equations. Main methods of solution. Simulation of Langevin equations. Colloidal particles in physics.

5) First passage-time problems. Concept of absorbing state and main methods of solution. First passage times in integrate-and-fire neurons.

6) Element of stochastic thermodynamics. Work, heat, and entropy production of a stochastic trajectory. Fluctuation relations, Crooks and Jarzynski relations.

• Basic calculus: students should be able to calculate integrals, know what a Fourier transform is, and solve simple differential equations.

• Basic probability theory: students should be familiar with basic probability theory, e.g. discrete and continuous distributions, random variables, conditional probabilities, mean and variance, correlations. These concepts are briefly revised at the beginning of the course.

• Scientific programming: the students are expected to be already able to write, for example, a program to integrate a differential equation numerically via the Euler scheme and plot the results. Python is the standard language for the course. The students are required to install the Jupiter notebook system and bring their own laptop for the hands-on sessions.