An introduction to the theory of orbifolds from a modern perspective, combining techniques from geometry, algebraic topology and algebraic geometry. One of the main motivations, and a major source of examples, is string theory, where orbifolds play an important role. The subject is first developed following the classical description analogous to manifold theory, after which the book branches out to include the useful description of orbifolds provided by groupoids, as well as many examples in the context of algebraic geometry. Classical invariants such as de Rham cohomology and bundle theory are developed, a careful study of orbifold morphisms is provided, and the topic of orbifold K-theory is covered. The heart of this book, however, is a detailed description of the Chen-Ruan cohomology, which introduces a new product for orbifolds and has had significant impact in recent years. The final chapter includes explicit computations for a number of interesting examples.