Another way of thinking about it is giving a coordinate system to the shape. As a curve is 1-dimensional, you only need one parameter to locate a point on the curve. Ie., that parameter may be distance from some point (an origin) on the curve.
For example, the curve generated by the graph of y = f(x) = x^3 can be parametrized by letting the point (0,0) be the origin of our 1-dimensional coordinate system and then noting that x(t) = t and y(t) = t^3 when describing the curve using the Cartesian xy-coordinate system.
Another valid parametrization is to choose the origin arbitrarily, ie., let the point (1,1), the coordinates of the point on the curve with respect to the Cartesian plane, be the point 0 with respect to our 1-dimensional curve coordinate system. Then x(t) = t + 1 and y(t) = (t + 1)^3.
You are now free to embed curves in any dimension, ie., curves in R^3, which would be rather clumsy to define in terms of functions. Any 1-parameter family of functions x(t), y(t), z(t) should describe a curve, as long as they're well-behaved. Try to describe a right-circular helix about the z-axis. (Hint: x(t) and y(t) should describe a circle, while z(t) just stretches it out. Drawing a picture always helps).
Surfaces are by definition 2-dimensional objects, so we will need 2 coordinates to locate a point on a surface. We usually go for the variables (u,v). That is to say, if we are talking about the parametrization of a surface as a subset of R^3, we would have 3 functions x(u,v), y(u,v), and z(u,v). Just imagine laying a grid down on the surface you want to parametrize; one of the directions will be the u-direction, the other will be v.