Coding Theory and Algebraic Curves Over Finite Fields