  In general, algorithms for computing the Selmer group of the Jacobian of a
curve have relied on either homogeneous spaces or functions on the curve. We
present a theoretical analysis of algorithms which use functions on the curve,
and show how to exploit special properties of curves to generate new Selmer
group computation algorithms. The success of such an algorithm will be based on
two criteria that we discuss. To illustrate the types of properties which can
be exploited, we develop a $(1-\zeta_{p})$-Selmer group computation algorithm
for the Jacobian of a curve of the form $y^{p}=f(x)$ where $p$ is a prime not
dividing the degree of $f$. We compute Mordell-Weil ranks of the Jacobians of
three curves of this form. We also compute a 2-Selmer group for the Jacobian of
a smooth plane quartic curve using bitangents of that curve, and use it to
compute a Mordell-Weil rank.
