Abstract
Deep learning taught us a new way to play with computers: compose differentiable components into a computer program, then tune its parameters via gradient optimization until that program achieves what we want. This is the key idea of differentiable programming. The rapid development of deep learning technology offers convenient tools for differentiable programming, and also opens a new frontier for computational physics. I will introduce the basic notion of differentiable programming, and its physics applications including modeling, optimization, control, and inverse design.