We will explain their properties, show how to compute their parameters and how to decode them, with emphasis on Groebner basis theoretical tools. We will describe their relation to other codes, such as one-point geometric Goppa codes and affine-variety codes. We will provide all the necessary commutative algebra background, including Groebner basis theory. Some tutorials with programmes running on new computational facilities will be given to help the students experiment with the methods exposed in the course. Lecture notes covering the whole course will be given to all participants.