Counting Sampling and Integrating: Algorithm and Complexity The subject of these notes is counting (of combinatorial structures) and related topics viewed from a computational perspective. Related topics include sampling combinatorial structures (being computationally equivalent to approximate counting via efficient reductions) evaluating partition functions (being weighted counting) and calculating the volume of bodies (being counting in the limit). A major theme of the book is the idea of accumulating information about a set of combinatorial structures by performing a random walk (i.e. simulating a Markov chain) on those structures. (This is for the discrete setting; one can also learn about a geometric body by performing a walk within it.) The running time of such an algorithm depends on the rate of convergence to equilibrium of this Markov chain as formalised in the notion of mixing time of the Markov chain. A significant proportion of the volume is given over to an investigation of techniques for bounding the mixing time in cases of computational interest. These notes will be of value not only to teachers of postgraduate courses on these topics but also to established researchers in the field of computational complexity who wish to become acquainted with recent work on non asymptotic analysis of Markov chains and their counterparts in stochastic processes who wish to discover how their subject sits within a computational context. For the first time this body of knowledge has been brought together in a single volume