Applications of Algebraic Geometry in Computer Science