In this course we study the structure of the algebraic Riemann surfaces and also the analytic functions on such surfaces. If time permit, we will discuss applications to some non-linear equations and integrable systems.