This book is aimed at senior undergraduates and graduate students in Engineering,
Science, Mathematics, and Computing. It expects familiarity with
calculus, probability theory, and linear algebra as taught in a rst- or secondyear
undergraduate course on mathematics for scientists and engineers.
Conventional courses on information theory cover not only the beautiful
theoretical ideas of Shannon, but also practical solutions to communication
problems. This book goes further, bringing in Bayesian data modelling,
Monte Carlo methods, variational methods, clustering algorithms, and neural