This technique was developed by **David Huffman** as part of a class assignment; the class was the first ever in the area of information theory and was taught by Robert Fano at MIT [22]. The codes generated using this technique or procedure are called Huffman codes. These codes are prefix codes and are optimum for a given model (set of probabilities).

The **Huffman procedure** is based on two observations regarding optimum prefix codes

- In an optimum code, symbols that occur more frequently (have a higher probability of occurrence) will have shorter codewords than symbols that occur less frequently
- In an optimum code, the two symbols that occur least frequently will have the same length.