Course Scope

This course is an introductory course to Computational Geometry for undergraduate students. Computational Geometry is a study of algorithms and data structures for geometric objects. One important goal of this class is to make you become knowledgeable and comfortable enough to deal with any geometric problems. Common geometric problems can be found in many domains. Here are just a few examples:

  • Robotics
  • Computer Graphics
  • Manufacturing (e.g., Computer Aided Design)
  • Geographic information system (GIS, e.g., Google map)

Course Outcomes

  • Understand the basic data structures and algorithm design strategies used in computational geometry
  • Understand the issues in implementation of geometric algorithms, such as robustness and degeneracies
  • Become familiar and comfortable with computational problems in areas, such as robotics and graphics.
  • Become familiar and comfortable with computational resources and tools for solving geometric problems.


  • CS310 or instructor's approval, which means you should know sorting algorithms, graph algorithms, and basic data structures (lists, trees, graphs), and know how to design and analyze the complexity of algorithms.
  • Working knowledge of C/C++ for most computational geometry libraries are implemented in C/C++. Our textbook is called "Computational Geometry in C." However, you should be able to use Java for your projects.

Required Textbook

Computational Geometry in C by Joseph O'Rourke (Cambridge University Press; 2008 edition, ISBN # 978-3-540-77973-5) is also a useful book. It seems that you can preview part of this book on google. As far as I know you should be able to get a copy of this book from the university bookstore.

Recommended: Computational Geometry: Algorithms and Applications by Mark de Berg, Marc van Kreveld, Mark Overmars, and Otfried Cheong, third revised edition, Springer-Verlag, 2008. ISBN # 978-3-540-77973-5. You should be able to view the entire textbook from a GMU IP address. (This book is not required for this course.)

Recently, O'Rourke also re-published his 1987 book, "Art Gallery Theorems and Algorithms" online, for free!


  1. Assignments 50%: There will be homework assignments, and programming assignments.
  2. Quizzes/Mid term Exam 20%
  3. Course project 30%

List of Topics

  • Triangulations
  • Polygon Partitioning
  • Intersection and Proximity problems
  • Convex hull
  • Range searching
  • Point location
  • Voronoi Diagrams and Delaunay Triangulations
  • Robot Motion planning
  • Quadtree/Octree

Classroom Behavior

During the lecture/resentation/demo, the students should not play games, text on your phone and surf the web. All electronic communication devices (including laptops, PDAs, cell phones) should be either turned off or silenced.


All required assignments should be completed by the stated due date and time. The total score of your finaly project score will be 10 points less every extra day after the due date (i.e., the 100 total points will become zero after 10 days pass the due date). You will be given 0 point for missing your own presentation. Please note that plagiarizing will be penalized by maximum negative credit and cheating on the exam will earn you an F in the course. See the GMU Honor Code System and Policies at and You are bound by these honor codes. Any submitted work which shows too much commonality with others' work to be completely original, or any plagiarized work, will receive a grade of 0. Any code which is presented in class or provided to you as part of the project may be included in your programs.

Accommodations for Disabilities

If you have a learning or physical difference that may affect your academic work, you will need to furnish appropriate documentation to GMU Disability Resource Center. If you qualify for accommodation, the DRC staff will give you a form detailing appropriate accommodations for your instructor. If you have such a condition, you must talk to the instructor during the first week of the term about the issue.