This document discusses Monte Carlo methods for numerical integration and simulation. It introduces the challenge of sampling from probability distributions and several Monte Carlo techniques to address this, including importance sampling, rejection sampling, and Metropolis-Hastings. It provides pseudocode for rejection sampling and discusses its application to estimating pi. Finally, it outlines using Metropolis-Hastings to simulate the Ising model of magnetization.