The goal of this course is to provide a survey of some of the main results about Bergman kernels, focusing mostly on the setting of sections of holomorphic line and vector bundles. After presenting the definitions and basic properties, we will discuss the asymptotic expansion for Bergman kernels, and then proceed to a number of interesting applications that have arisen in the last few years.