Information theory is concerned with two main tasks. The first task is called data compression (source coding). This is concerned with removing redundancy from data so it can be represented more compactly (either exactly, in a lossless way, or approximately, in a lossy way). The second task is error correction (channel coding), which means encoding data in such a way that it is robust to errors...