CS 164/266, Fall 2025:
Computational Geometry


General Course Information

The two courses CS 164 (for undergraduates) and CS 266 (for graduate students) are co-located: they will have the same lectures, but different homework and exam problems. They will be taught by David Eppstein, eppstein@uci.edu (office hours TBA). The teaching assistant is Cole Groen (office hours TBA). There is an online discussion forum on Ed Discussion.

For both courses, I will assign weekly practice problem sets at the start of each week, covering that week's material, and I strongly recommend that all students do these, but they will not be collected and graded. Instead, solutions will be posted at the end of the week to "Resources" in Ed Discussion, and you can expect to see similar problems (or even in some cases the same problems) on the exams. For CS 266, I will also post a weekly graduate reading assignment from the computational geometry research literature; students are expected to understand at least the introductions to these papers, and I may include questions on these in the exams. There will be three exams (two midterms and a final) each covering the material from roughly one third of the class (not comprehensive), each equally weighted in the overall course grade. Exams will be closed book, closed notes, and closed friends.

The course text is Computational Geometry Algorithms and Applications, 3nd ed., by de Berg, van Kreveld, Overmars, and Cheong (Springer-Verlag, 2008). An electronic version is available for no charge from UCI internet addresses at SpringerLink.

The combined lecture for both courses will meet physically on Tuesdays and Thursdays, 12:30–1:50pm, in MSTB 118. The final exam will be in the same place on Friday, December 12, 10:30AM–12:30PM. Lectures will also be in person only. Links to the lecture notes for each topic will be posted on this page prior to each lecture. Except for students with special arrangements through the UCI Disability Services Center, all exams will be in person only.

Tentative Schedule

Week 0 (September 25).
 
No lecture.
 
Week 1 (September 30, October 2).
 
Coordinate systems and geometric primitives; projective geometry; convex hulls [Chap. 1; Sec. 8.2]
Line segment intersection [Chap. 2]
 
Week 2 (October 7, 9).
 
Arrangements of lines [Chap. 8]
Polygon triangulation [Chap. 3]
 
Week 3 (October 14, 16).
 
Visibility and shortest paths [Chap. 15]
Quadtrees and mesh generation [Chap. 14]
 
Week 4 (October 21, 23).
 
First midterm exam, Tuesday, October 24
Three-dimensional convex hulls [Chap. 11].
 
Week 5 (October 28, 30).
 
Linear programming and LP-type problems [Chap. 4].
 
Week 6 (November 4, 6).
 
Point location and the locus method [Chap. 6]
Voronoi diagrams [Chap. 7]
 
Week 7 (November 11, 13).
 
Delaunay triangulations and minimum spanning trees [Chap. 9]
Second midterm exam, Thursday, November 13
 
Week 8 (November 28, 20).
 
Binary space partitions and ray shooting [Chap. 12]
Range counting, kD-trees, and quadtrees [Chap. 5]
 
Week 9 (November 25, 27).
 
Range reporting, onion layers, and fractional cascading [Chap. 5]
Thanksgiving holiday, November 27
 
Week 10 (December 2, 4).
 
Segment trees and interval trees [Chap. 10]
Motion planning and configuration spaces [Chap. 13]
 
Final exam week.
 
Final exam, December 12, 10:30AM–12:30PM

Sample exams from past years (not guaranteed to cover the same material as this year):