The problem of enumerating maps (a map is a set of polygonal "countries" on a world of a certain topology, not necessarily the plane or the sphere) is an important problem in mathematics and physics, and it has many applications ranging from statistical physics, geometry, particle physics, telecommunications, biology, ... etc. This problem has been studied by many communities of researchers, mostly combinatorists, probabilists, and physicists. Since 1978, physicists have invented a method called "matrix models" to address that problem, and many results have been obtained. Besides, another important problem in mathematics and physics (in particular string theory), is to count Riemann surfaces. Riemann surfaces of a given topology are parametrized by a finite number of real parameters (called moduli), and the moduli space is a finite dimensional compact manifold or orbifold of complicated topology. The number of Riemann surfaces is the volume of that moduli space. Mor e generally, an important problem in algebraic geometry is to characterize the moduli spaces, by computing not only their volumes, but also other characteristic numbers called intersection numbers. Witten's conjecture (which was first proved by Kontsevich), was the assertion that Riemann surfaces can be obtained as limits of polygonal surfaces (maps), made of a very large number of very small polygons. In other words, the number of maps in a certain limit, should give the intersection numbers of moduli spaces. In this book, we show how that limit takes place. The goal of this book is to explain the "matrix model" method, to show the main results obtained with it, and to compare it with methods used in combinatorics (bijective proofs, Tutte's equations), or algebraic geometry (Mirzakhani's recursions). The book intends to be self-contained and accessible to graduate students, and provides comprehensive proofs, several examples, and give s the general formula for the enumeration of maps on surfaces of any topology. In the end, the link with more general topics such as algebraic geometry, string theory, is discussed, and in particular a proof of the Witten-Kontsevich conjecture is provided.