Basic Concepts in Information Theory and Coding