Algebraic Codes for Data Transmission