This course will introduce the fundamental concepts for creating and analyzing shapes on the computer. We will start with generating and representing smooth curves in 2d using splines and Bézier curves. We will then move to various techniques for shape representation in 3d with special emphasis on triangle meshes and associated methods. At the same time, we will introduce methods for shape *analysis* and in particular defining and computing similarity between shapes, and shape matching (establishing correspondences between points on shapes).