Elementary Algorithms for Solving Convex Optimization Problems