This document discusses Huffman coding, which is a variable-length encoding technique used to compress data. It describes how Huffman codes are created by building a binary tree based on the frequencies of symbols in a message. The tree is constructed by recursively combining the two subtrees with the lowest frequencies until a single tree remains. Codes are then assigned to each symbol by traversing paths from the root to leaf nodes, with 0 representing a left branch and 1 a right branch. This ensures the prefix property where no code is a prefix of another. An example is provided to demonstrate constructing a Huffman tree and assigning codes for a sample message. The average code length is calculated using the formula provided.