The book introduces and explains most of the main techniques and ideas in the study of the structure of diffeomorphism groups. A quite complete proof of Thurston's theorem on the simplicity of some diffeomorphism groups is given. The method of the proof is generalized to symplectic and volume-preserving diffeomorphisms. The Mather-Thurston theory relating foliations with diffeomorphism groups is outlined. A central role is played by the flux homomorphism. Various cohomology classes connected with the flux are defined on the group of diffeomorphisms. The main results on the structure of diffeomorphism groups are applied to showing that classical structures are determined by their automorphism groups, a contribution to the Erlanger Program of Klein. Audience: Graduate students and researchers in mathematics and physics.