In light of the history of LDPC codes and relevant research advances in recent years, this paper probes into the encoding and decoding techniques related to this capacity-approaching error-correction technology. Besides the general expression as an equation, LDPC codes can also be examined with a Tanner graph. The encoding of LDPC codes comprises two tasks: construct a sparse parity-check matrix, and generate codewords with the matrix. The decoding of LDPC codes can be divided into three phases: initialization, message update, and validation. With a conventional model of communication systems, common decoding algorithms of LDPC codes are scrutinized. In particular, the sum-product algorithm is analyzed in an elaborate fashion. The logarithmic sumproduct algorithm and the min-sum algorithm are two important variations of the sum-product algorithm. The logarithmic sum-product algorithm reduces multiplication to addition by introducing logarithmic likelihood ratio while the latter simpli...