Algorithms in Commutative Algebra and Algebraic Geometry