Information Theory Fundamentals