This course will present a broad introduction to stochastic processes. The main focus will be 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 concept in probability theory, we will explain what stochastic processes are and the concept of stochastic trajectory. We will then broadly classify stochastic processes (discrete/continuous time and space, markovianity). The rest of the course will be devoted to the most commonly used types of stochastic processes: Markov chains, Master Equations, Langevin/Fokker-Planck equations. For each of these types of process, we will review the main applications in physics, biology, and neuroscience, and discuss the simplest algorithms to simulate them on a computer. The course will include exercises sessions in which the students will start writing their own code to simulate stochastic processes, aided by the instructor.

These numerical simulations will be finalized as homework and reports based on them will constitute the main evaluation of the course.

Resume of basic concepts of probability theory (discrete and continuous distributions, main

properties). Random number generators.

Definition of a stochastic process. Classification: discrete and continuous time, discrete and

continuous space, equations for the trajectory and for the probabilities.

Markov chains. Wright-Fisher model in population genetics.

Master equations. Gillespie algorithm. Stochastic chemical kinetics.

Langevin equations and Fokker-Planck equations. Simulation schemes for Langevin

equations. Random walks and colloidal particles in physics.

First passage-time problems. First passage times in integrate-and-fire neurons.

Evaluation of the course will be mainly based on reports about numerical simulations. For each topic, one model (or more) from the physics or biology literature will be presented, together with an efficient computational method to simulate it. The students will be required to write their own code and submit a brief report containing a) short description of the model and the numerical algorithm, b) their commented python code, c) short description of numerical results, and related figures. In

additional, simple mathematical exercises will be given to the students as homework throughout the course. There will be no final exam.

Basic calculus: students should be able to calculate integrals and solve simple differential equations.

Basic probability theory: although these concepts will briefly resumed at the beginning of the course, students should be aware of basic concepts in probability theory, e.g. discrete and continuous distributions, random variables, conditional probabilities, mean and variance, correlations.

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. For the reports, exceptions can be made if a student prefers to write simulations in C or Fortran.