This graduate textbook presents a concrete and up-to-date introduction to the theory of Coxeter groups. The book is self-contained, making it suitable either for courses and seminars or for self-study. The first part is devoted to establishing concrete examples. Finite reflection groups acting on Euclidean spaces are discussed, and the first part ends with the construction of the affine Weyl groups, a class of Coxeter groups that plays a major role in Lie theory. The second part (which is logically independent of, but motivated by, the first) develops from scratch the properties of Coxeter groups in general, including the Bruhat ordering and the seminal work of Kazhdan and Lusztig on representations of Hecke algebras associated with Coxeter groups is introduced. Finally a number of interesting complementary topics as well as connections with Lie theory are sketched. The book concludes with an extensive bibliography on Coxeter groups and their applications.