The method of adjoints is one of the most common approaches to the computational theory of algebraic curves, especially to constructing Riemann–Roch spaces and canonical embeddings. The underlying theory generalizes easily to surfaces and even higher dimensions. In fact, adjoints have played a crucial role in the theory of algebraic surfaces in the classical Italian school (Cremona, Castelnuovo, Enriques,..). In the first part of the talk, we will discuss several applications. The computational foundation for the method of adjoints is an efficient method for computing adjoints. The fastest way to do this uses two-dimensional analogues of Puiseux expansions. In the second part of the talk, this approach will be explained.