Curves and Surfaces are particular types of Blender Objects. They are expressed by mathematical functions rather than a series of points. Blender offers both Bezier Curves and Non-Uniform Rational B-Splines (NURBS). Both Bezier curves and NURBS curves and surfaces are defined in terms of a set of “control points” (or “control vertices”) which define a “control polygon”. Both bezier and NURBs curves are named after their mathematical definitions, and choosing between them is often more a matter of how they are computed behind the scenes than how they appear from a modeler’s perspective. Bezier curves are generally more intuitive because they start and end at the control points that you set, but NURBs curves are more efficient for the computer to calculate when there are many twists and turns in a curve. The main advantage to using curves instead of polygonal meshes is that curves are defined by less data and so can produce results using less memory and storage space at modeling time. However, this procedural approach to surfaces can increase demands at render time. Certain modeling techniques, such as extruding a profile along a path, are possible only using curves. On the other hand, when using curves, vertex-level control is more difficult and if fine control is necessary, mesh editing may be a better modeling option. Bezier curves are the most commonly used curves for designing letters or logos. They are also widely used in animation, both as paths for objects to move along and as F-curves to change the properties of objects as a function of time. The main elements used in editing Bezier Curves are the Control Points and Handles. A Segment (the actual Curve) is found between two Control Points. In the image below, the Control Points can be found in the middle of the pink line while the Handles comprise the extensions from the Control Point. By default the arrows on the Segment represents the direction and relative speed and direction of movement Objects will have when moving along the curve. This can be altered by defining a custom Speed Ipo. Note that while in Edit mode you cannot directly select a Segment. To do so, select all of the Control Points that make up the Segment you want to move. There are four Bezier curve handle types. They can be accessed by pressing V and selecting from the list that appears, or by pressing the appropriate hotkey combination. Handles can be rotated, moved, scaled and shrunk/fattened like any vertex in a mesh. Curve Properties can be set from the Object Data option in the Properties Header (shown below in blue). The Path Animation settings can be used to determine how Objects move along a certain path. See the link below for further information. One of the major differences between Bezier Objects and NURBS Objects is that Bezier Curves are approximations. For example, a Bezier circle is an approximation of a circle, whereas a NURBS circle is an exact circle. NURBS theory can be a very complicated topic. For an introduction, please consult the Wikipedia page. In practice, many of the Bezier curve operations discussed above apply to NURBS curves in the same manner. The following text will concentrate only on those aspects that are unique to NURBS curves. As mentioned above, Curves are often used as paths. Any curve can be used as a Path if the Path Animation option is selected. Source.