Codes: An Introduction to Information Communication