Information Theory Coding And Cryptography Notes