Introduction to Low Density Parity Check Codes and the Sum-Product Algorithm