Counting, Sampling and Integrating: Algorithms and Complexity (Lectures in Mathematics. ETH Zürich)