Is there an algorithmic way to put a given elliptic curve into Weierstrass normal form? If not, what's the general procedure?
Yes. Say that C is a cubic. We start by picking a rational point O on the cubic. Then we take the tangent line of C at the rational point O. This will intersect the cubic in another rational point. We take the X-axis to be the tangent line at that other rational point. And we let the Y-axis to be any line through O. By changing coordinates, you get an equation of the form [itex]xy^2+(ax+b)y=cx^2+d+e[/itex] Multiply by x and change into the variable u=xy. This will get you something of the form [tex]u^2+(ax+b)u=cx^3+dx^2+ex[/tex] Change the variable again by setting [itex]v^2=u^2+(ax+b)[/itex]. Now change the variables once more to obtain that c=1.