Algebraic Geometry in Coding Theory and Cryptography