This thesis gives an introduction into the theory of algebraic function fields and algebraic curves with an application to Goppa codes. The first two chapters focus on function fields in a purely algebraic setting and have the Riemann-Roch Theorem as their main result. Algebraic curves are approached from the perspective of function fields. Two kinds of Goppa codes are defined via places and local components of differentials, respectively. An example of how to construct Goppa codes from algebraic curves is given. In the last chapter a standard decoding scheme as well as a list decoding algorithm for Goppa codes are presented.