  We give algorithms for computing with divisors on projective curves over
finite fields, and with their Jacobians, using the algorithmic representation
of projective curves developed by Khuri-Makdisi. We show that many desirable
operations can be done efficiently in this setting: decomposing divisors into
prime divisors; computing pull-backs and push-forwards of divisors under finite
morphisms, and hence Picard and Albanese maps on Jacobians; generating
uniformly random divisors and points on Jacobians; computing Frobenius maps and
Kummer maps; and finding a basis for the $l$-torsion of the Picard group, where
$l$ is a prime number different from the characteristic of the base field.
