Computational Geometry (CSCI 716)

Course Information


Instructor: Reynold Bailey
Email: rjb@cs.rit.edu
Phone: (585) 475-6181

Office hours: Tuesday 10:30 AM - 11:30 AM and Thursday 1:00 PM - 2:00 PM, Room GOL-3015
                         
Class times: Tuesday, Thursday 2:00 PM - 3:15 PM, Room GOL-2590

Course URL: http://www.cs.rit.edu/~rjb/RITcourses/2181/CompGeo/ComputationalGeometry.html

Description

Computational Geometry is a sub-field of algorithm theory that involves the design and analysis of efficient algorithms for problems involving geometric input and output. In this course the focus will be largely on problems in 2-dimensional space (lines, line segments, polygons, planes, polyhedra, curved objects, etc.) with occasional inclusion of higher dimensional problems. There are many fields of computer science that deal with solving problems of a geometric nature. These include computer graphics, computer vision and image processing, robotics, computer-aided design and manufacturing, computational fluid-dynamics, and geographic information systems, to name a few. One of the goals of this computational geometry course is to provide the basic geometric tools necessary to solve problems in these fields.

Acknowledgements

Some course materials courtesy of David M. Mount, Dept. of Computer Science, University of Maryland, College Park, MD.

Some course materials courtesy of Robert Pless, Dept. of Computer Science and Engineering, Washington University in St. Louis.

Course Learning Outcomes
Prerequisites

CSCI 261 (Analysis of Algorithms) or CSCI 665 (Foundations of Algorithms) or permission of instructor.

Texts
Requirements and Grading

Homework
20%
Quizzes
10%
Programming assignments 20%
Midterm Exam
25%
Final Project
25%

Final grades will be assigned using the following scale:

A
92% or above
A-
at least 89% but under 92%
B+
at least 85% but under 89%
B
at least 82% but under 85%
B-
at least 79% but under 82%
C+
at least 75% but under 79%
C
at least 72% but under 75%
C-
at least 69% but under 72%
D
at least 60% but under 69%
F
under 60%

Homework:

Homework will be announced in class and posted on the course website. Due dates will also be listed. Generally, students will have 1 week to complete homework assignments. Each homework will be weighted equally.

Quizzes:

Quizzes will be given in class on random days throughout the semester. Each quiz will be weighted equally. There will be no make-up quizzes.

Programming Assignments:

Programming assignments will be announced in class and posted on the course website. Generally, students will have 2 weeks to complete programming assignments. Each of the programming assignments will be weighted equally.

Midterm Exam:

There will be a written midterm that covers the material from the first half of the course.

Final Project:

The final project will be announced in class and posted on the course website early in the semester. You may work in teams (3 members maximum). Deliverables will include
Submissions

Dropboxes will be available on the myCourses website for submission of homework, programming assignments, and the project deliverables. Please pay attention to the due dates. Any code that you submit must run on the CS Department's Linux lab machines.

Policy on late submissions

Late deliverables will be not be allowed. If you foresee any problems with meeting a deadline, please see the instructor well in advance of the deadline to work out alternate arrangements.

Tentative Schedule

Lecture Notes: Slides presented in class will be posted in the content area of myCourses.

Programming assignments, homework, and the project description will be posted on the course website. Special events such as extra credit opportunities will also be posted on the course website. Please stay informed by visiting the course website regularly throughout the semester.

Week
Days
Topics
Assigned Readings
Special Events
1
Tue. Aug. 28
Thu. Aug. 30
Course Logistics
Introduction

Homework 1 (assigned Aug. 30, due Sept. 6, 11:59pm
Final Project assigned
2
Tue. Sept. 4
Thu. Sept . 6
Points, Vectors, and Matrices
Analysis of Algorithms


3
Tue. Sept. 11
Thu. Sept. 13
Convex Hulls Sections
1.1, 1.2, 1.3
Programming Assignment 1 (assigned Sept. 13, due Sept. 27, 11:59pm)
4
Tue. Sept. 18
Thu. Sept. 20
Plane Sweep Algorithms
Sections
2.1
project summary on website due
5
Tue. Sept. 25
Thu. Sept. 27
Line Segment Intersection
Polygon Triangulation
Sections
3.1, 3.2, 3.3

6
Tue. Oct. 2
Thu. Oct. 4
Linear Programming
Halfplane Intersection
Sections
4.2, 4.3, 4.4
In-class project overview
7
Thu. Oct. 11
Point-Line Duality
Sections
8.2
Programming Assignment 2 (assigned Oct. 11, due Oct. 25, 11:59pm)
Programming Assignment 3 (early release, due Nov 29, 11:59pm, teams of two permitted)
8
Tue. Oct. 16
Thu. Oct. 18
Trapezoidal maps
Point Location
Sections
6.1, 6.2
Midterm Exam
9
Tue. Oct. 23
Thu. Oct. 25
Voronoi Diagrams Sections
7

10
Tue. Oct. 30
Thu. Nov. 1
Delaunay Triangulations

In-class project presentation (5 minutes for each team)
Some things that will be considered during grading





11
Tue. Nov. 6
Thu. Nov. 8
Line Arrangements
Sections
9

12
Tue. Nov. 13
Thu. Nov. 15
Zone Theorem
Orthogonal Range Searching
Section
8.3, 5

13
Tue. Nov 20
kd-Trees
Orthogonal Range Trees
Sections
5.3, 5.3, 5.4
Homework 2 (assigned Nov. 27, due Dec. 6, 11:59pm)
14
Tue. Nov. 27
Thu. Nov. 29
Fractional Cascading
Well Separated Pair Decomposition
Sections
5.6

15
Tue. Dec. 4
Thu. Dec. 6


In-class final project presentation (10-12 minutes for each team)
Presentation schedule
Some things that will be considered during grading
16
Mon. Dec. 10


Final project webpage due - Dec. 10th, 11:59pm
Finals Exams (December 12th - 19th)

Useful Resources
Additional links will be added here over the course of the semester. If you come across any useful resources that should be listed here, please let me know.

Academic Honesty

It is a shame that this must be stated at all, but there are always a few students who do not abide by the rules of proper academic conduct. For the record:
Complete policy details regarding cheating and classroom conduct can be found at: https://www.cs.rit.edu/csdocs/programs/StudentAcademicIntegrityPolicy.pdf

Please read and be aware of the consequences.

Teaching Evaluation

RIT will be using SmartEvals, a web-based, university-wide student rating of teaching effectiveness system. With SmartEvals you will be able to evaluate each of your professors using a uniform platform and common look and feel experience across all courses. Access to each of your faculty rating forms will be open weeks 13 through 15 of the semester. Each rating form will take 10 or fewer minutes to complete. Information about this system will be shared with you via email and a dedicated website.

I take your comments seriously and your responses allow me to reflect on my teaching and course delivery, I encourage you to participate in SmartEvals for this course so as to achieve as close to a 100% participation rate as possible. In keeping with institute guidelines, I will not be offering extra credit or points as incentives to complete this evaluation.