A timeline of events related to information theory, quantum information theory and statistical physics, data compression, error correcting codes and related subjects. 1872 – Ludwig Boltzmann presents his H-theorem, and with it the formula Σpi log pi for the entropy of a single gas particle 1878 – J. Willard Gibbs defines the Gibbs entropy: the probabilities in the entropy formula are now taken as probabilities of the state of the whole system 1924 – Harry Nyquist discusses quantifying "intelligence" and the speed at which it can be transmitted by a communication system 1927 – John von Neumann defines the von Neumann entropy, extending the Gibbs entropy to quantum mechanics 1928 – Ralph Hartley introduces Hartley information as the logarithm of the number of possible messages, with information being communicated when the receiver can distinguish one sequence of symbols from any other (regardless of any associated meaning) 1929 – Leó Szilárd analyses Maxwell's Demon, showing how a Szilard engine can sometimes transform information into the extraction of useful work 1940 – Alan Turing introduces the deciban as a measure of information inferred about the German Enigma machine cypher settings by the Banburismus process 1944 – Claude Shannon's theory of information is substantially complete 1947 – Richard W. Hamming invents Hamming codes for error detection and correction (to protect patent rights, the result is not published until 1950) 1948 – Claude E. Shannon publishes A Mathematical Theory of Communication 1949 – Claude E. Shannon publishes Communication in the Presence of Noise – Nyquist–Shannon sampling theorem and Shannon–Hartley law 1949 – Claude E. Shannon's Communication Theory of Secrecy Systems is declassified 1949 – Robert M. Fano publishes Transmission of Information. M.I.T. Press, Cambridge, Massachusetts – Shannon–Fano coding 1949 – Leon G. Kraft discovers Kraft's inequality, which shows the limits of prefix codes 1949 – Marcel J. E. Golay introduces Golay codes for forward error correction 1951 – Solomon Kullback and Richard Leibler introduce the Kullback–Leibler divergence 1951 – David A. Huffman invents Huffman encoding, a method of finding optimal prefix codes for lossless data compression 1953 – August Albert Sardinas and George W. Patterson devise the Sardinas–Patterson algorithm, a procedure to decide whether a given variable-length code is uniquely decodable 1954 – Irving S. Reed and David E. Muller propose Reed–Muller codes 1955 – Peter Elias introduces convolutional codes 1957 – Eugene Prange first discusses cyclic codes 1959 – Alexis Hocquenghem, and independently