A modern treatment focusing on learning and inference, with minimal prerequisites, real-world examples and implementable algorithms.