Applied Coding and Information Theory for Engineers