Spring 2015
Ileana Streinu
Wiki | Moodle

274 Computational Geometry

Computational Geometry is a branch of Theoretical Computer Science which seeks good solutions ("algorithms") for computational problems with a geometrical flavor. The problems may come from a variety of applied fields, such as Computer Graphics, Computer Animation, Robotics, Computer Vision, Geographical and Spatial Databases, Computational Molecular Biology or from medical applications such as Tomography, etc. But the focus of this course is not on the applications, which are used just to motivate why we study such problems. Instead, we look for the underlying geometric structures, strip off (most of the) application- and implementation-dependent details and search for a general, efficient algorithmic solution.

I like to adjust some components of the course to the particular interests of the students taking it. The first three weeks of the semester will expose the students to several problems and approaches, and in turn will reveal their interests and motivation for taking the course. Depending on that, I may go deeper into the mathematical aspects and/or implementations of geometric algorithms. Most of the class will be devoted to a selection of beautiful geometric problems, the algorithms used to solve them and the underlying theory.

This is NOT a programming intensive course. In fact, you may do very little programming in this class, if you want to approach the subject from a mathematical rather than computer science viewpoint.

Required work. There will be weekly homework consisting primarily of small problem sets (for the mathematically minded students) or small programs (for the students approaching the subject from a computer science perspective). A midterm exam is similarly structured.

In the second half of the semester, the students will choose a problem to research on. They either do individual reading of material related to the chosen topic (typically a book chapter and library/database search for related papers), or an implementation of an algorithm. The course concludes with a final self-scheduled exam, building upon the problem sets discussed throughout the semester.