Continuum simulations of solids or fluids for which some atomistic information is needed are typical example of multi-scale problems with very large ranges of scales. For such problems it is necessary to restrict the simulations on the micro-scale to a smaller subset of the full computational domain. The heterogeneous multi-scale method is a framework for developing and analyzing numerical methods that couple computations from very different scales. Local micro-scale simulations on small domains supply missing data to a macro-scale simulation on the full domain. Examples are local molecular dynamics computations that produce data to a continuum macro-scale model, or a highly oscillatory dynamical system for which a local estimate of resonances is enough to supply data for a smoother evolution of averages.