An Introduction to Computing in Physics
Physics 246OWL
Fall 2020; Fall 2019

Physics 246 (298owl) will teach you to be a fearless code warrior, exploring the behaviors of systems that are too complicated for analytic characterization. Example units include orbital dynamics, quantum computing, fluid dynamics, and markov chains.

Computing in Physics
Physics 498CMP
Spring 2020; Spring 2019; Fall 2018; Spring 2018; Fall 2017

This course is an immersive how-to approach for doing computational physics. You will learn everything from good software engineering, to how to go from a model to working simulation code, to how to collect and analyze computational data. In other words, this course will teach you a computational perspective on physics. There are various ways to learn physics, but one of the best is to understand it sufficiently well that you can teach a computer how to do it. You will understand the physics of quantum mechanics by teaching your laptop to simulate a quantum computer; you will understand renormalization group by teaching your computer to renormalize. The course involves four projects including building a quantum computing simulator, renormalization, the relation between ising models and machine learning, and condensed matter systems. .

Graduate Quantum Mechanics 2
Physics 581
Spring 2017

In this course, we will develop a conceptual understanding of quantum phenomena as well as develop expertise at solving quantum problems. We will cover a number of topics including finding eigenstates using perturbation theory and the variational method, time dependent pertrubation theory and the quantization of EM field, scattering,, numerical methods for quantum physics, and many-body physics. The heart and soul of this course are the problem sets. It is by doing problems that you will learn quantum mechanics.

Graduate Quantum Mechanics 1
Physics 580
Fall 2016

In this course, we will attempt to develop a conceptual understanding of quantum phenomena as well as develop expertise at solving quantum problems. We will cover a number of traditional topics as well as modern material including quantum computing, numerical methods, and entanglement. The heart and soul of this course are the problems. <

An algorithmic perspective on strongly correlated systems
Physics 598BKC
Fall 2015

The most interesting and difficult problems in physics are where emergent phenomena arise that appear fundamentally different from their constituent pieces. This course focuses on an algorithmic perspective on these problems. We cover both the methods to simulate them as well as understanding how an algorithmic perspective, such as tensor networks, have given a new framework for thinking about this physics. Algorithms that will be covered include the density matrix renormalization group, tensor networks, quantum Monte Carlo, and dynamical mean field theory. Physics examples will include area laws (we will cover the proof that entanglement is bounded in 1D gapped systems); a perspective on ADS/CFT via quantum error correcting codes and perfect tensors; understanding how the sign structure influences the physics of systems; and quantum computing.

Atomic Scale Simulations
Physics 466
Spring 2015

This course is designed to teach you the algorithms and approach for doing simulations at the atomic level.

Undergraduate Quantum Mechanics
Physics 486
Fall 2014

The Physics 486-487 sequence provides an introduction to quantum physics for majors and grad students in Physics, ECE, Materials Science, Chemistry, etc. The course starts by introducing the basic concepts of quantum mechanics: What is a quantum state and what are the rules that specify how it can change and ends by realizing that exactly computing properties of states is hard and sophisticated approximations are required. In between we will see both the exotic parts of quantum mechanics and how to demystify many of these aspects.

Thermal/Quantum Physics
Physics 213/214
Spring 2014

Independent Study
Physics 497
Spring 2014 (1 student); Fall 2014 (1 student); Spring 2015 (1 student); Fall 2015 (3 students); Spring 2016 (2 students); Summer 2016 (1 student); Fall 2016 (2 students); Spring 2017 (2 students); Summer 2017 (1 student); Fall 2017 (3 students); Spring 2018 (2 students); Fall 2018 (3 students); Spring 2019 (3 students)

Summer Schools

Telluride School on Stochastic Approaches to Electronic Structure Calculations
Telluride School
Path Integrals Lectures (Blackboard) + Path Integral Tutorial

PSSCMP 2016: Many-body Localization and Frustrated Magnetism
Princeton Center for Complex Materials Summer School on Condensed Matter Physics

Boulder School 2010: Computational and Conceptual Approaches to Quantum Many-Body Systems
Boulder Summer School

I taught at the Boulder Summer School on Computational and Condensed Matter and Material Physics. I lectured on Variational, Diffusion, and Fixed Node quantum Monte Carlo.

Continuum QMC Methods
Co-organizer and Lecturer (9 hours)
September 2011
Lausanne, Switzerland

Trieste Advanced School on Quantum Monte Carlo Methods in Physics and Chemistry
Tutorials on Variational Monte Carlo, Path Integral Monte Carlo and PIMC++
Jan. 2008

Quantum Monte Carlo from Minerals and Materials to Molecules Summer School
July 2007