AM207 Stochastic Methods for Data Analysis, Inference and Optimization


Lectures and Sections

  • Lectures are 11:30 - 1pm on Tuesdays & Thursdays in MD G115
  • Friday lab time is 2-4pm in Cruft 309


  • Verena Kaynig-Fittkau, Computer Science, Office hours: Thursdays 2-3pm
  • Pavlos Protopapas, Computational Science


  • Wei Dai
  • Rafael Martinez Galarza
  • Giri Gopalan
  • Alexander Isakov
  • Richard Kim
  • Steve Klosterman
  • Xide Xia

Contact the staff at our staff mailing list.

Monte Carlo methods are a diverse class of algorithms that rely on repeated random sampling to compute the solution to problems whose solution space is too large to explore systematically or whose systemic behavior is too complex to model. This course introduces important principles of Monte Carlo techniques and demonstrates the power of these techniques with simple (but very useful) applications. Starting from the basic ideas of Bayesian analysis and Markov chain Monte Carlo samplers, we move to more recent developments such as slice sampling, multi-grid Monte Carlo, Hamiltonian Monte Carlo, parallel tempering and multi-nested methods. We complete our investigation of Monte Carlo samplers with streaming methods such as particle filters/sequential Monte Carlo. Throughout the course we delve into related topics in stochastic optimization and inference such as genetic algorithms, simulated annealing, probabilistic Gaussian models, and Gaussian processes. Applications to Bayesian inference and machine learning are used throughout. We will be using Python for all programming assignments and projects. All lectures will be recorded and should be available 24 hours after meeting time.