Description:Based on lectures delivered by the authors at Moscow State University, this volume presents a detailed introduction to the theory of Hilbert $C^*$-modules. Hilbert $C^*$-modules provide a natural generalization of Hilbert spaces arising when the field of scalars $\mathbf{C}$ is replaced by an arbitrary $C^*$-algebra. The general theory of Hilbert $C^*$-modules appeared more than 30 years ago in the pioneering papers of W. Paschke and M. Rieffel and has proved to be a powerful tool in operator algebras theory, index theory of elliptic operators, $K$- and $KK$-theory, and in noncommutative geometry as a whole. Alongside these applications, the theory of Hilbert $C^*$-modules is interesting on its own. In this book, the authors explain in detail the basic notions and results of the theory, and provide a number of important examples. Some results related to the authors' research interests are also included. A large part of the book is devoted to structural results (self-duality, reflexivity) and to nonadjointable operators. Most of the book can be read with only a basic knowledge of functional analysis; however, some experience in the theory of operator algebras makes reading easier.