It first covers the diffusion model with an introduction to stochastic calculus and a deep examination of the Black-Merton -Scholes framework. Then it deals with the discrete time approach (binomial and trinomial trees) and the issues related to replication (managing Greek parameters, transaction costs). The course will review the numerical methods of finite differences and Monte Carlo simulations. In the second part, exotic options will serve as an advanced application of stochastic calculus (for analytical evaluation) and of numerical methods. Then, the course will focus on the modelling of volatility in discrete time (Garch models) as well as in continuous time (stochastic volatility models). It will end with a brief introduction to jump-diffusion models.