Overview and introduction to programming in CGAL. Exact computation: number types, Cartesian and homogeneous representation. Degeneracy handling: explicit special case handling. Intersection uses CGAL::Object, a polymorphic type, as return type. CGAL::Object is a local design solution without introducing a common base class for all objects. Geometric traits class to separate algorithms and data structures from the underlying geometric representation. An affine-geometry kernel: Points, vectors, covectors, and hyperplanes. Coordinate-free geometry and frames.