This course covers fundamental algorithms for efficiently solving geometric problems, especially ones involving 2D polygons and 3D polyhedrons. Topics include elementary geometric operations; polygon visibility, triangulation, and partitioning; computing convex hulls; Voronoi diagrams and Delaunay triangulations with applications; special polygon and polyhedron algorithms such as point containment and extreme point determination; point location in a planar graph subdivision; and robot motion planning around polygon obstacles. The course covers theory to the extent that it aids in understanding how the algorithms work. Emphasis is placed on implementation, and programming projects are an important part of the coursework.
Familiarity with linear algebra.