Information Theory : From Coding to Learning