Date  Topic  Notes, Reading, Assignments 
Jan 24  Introduction.
The C programming language. Input/output, loops, functions, call by value. 
Applications of Computational Geometry
Overview Chapter 1 K&R The C programming language (wikipedia) The C programming language The history of C 
Jan 26  Pointers.  
Jan 31  Pointers.
Command line arguments. Header files. 
GNU Emacs reference card
Emacs quick reference 
Febr 2  Dummy header doubly linked lists. scanf(). Strings. Makefiles.  Assignment 1 (a firstin firstout doubly linked queue) 
Febr 7  File I/O.
Command line arguments. Unix tutorial. 
Example: fileseg.tar
Unix tutorial Assignment 2 (shift segments) 
Febr 9  OpenGL basics. 
Example: gr1.tar
The Red Book: Chapter 1 (Intro)  Chapter 2 (Drawing simple objects) Assignment 3 (OpenGL warmup) 
Febr 14 
Virtual memory system.
Accessing arrays in external memory: sequential vs random access. Accessing trees in external memory. Data layout. Btrees and (a,b)trees. 
Virtual memory (Wikipedia)
Btree (Wikipedia) Btree (semaphorecorp) 
Febr 16 
Assignment 3 demo.
Btrees and (a,b)trees (continued). Animations: 234trees  Btree 
Assignment 4 (visualizing segments from a
file)
Look at: graphics2.tar 
Febr 21 
Btrees and (a,b)trees (continued).
OpenGL: Homogenous coordinates. Transformations (rotation, translation). Order of transformations. 
The Red Book: Chapter 3
(Viewing)  Appendix G
(Homog coord and transf. matrices)
Project 1 (visualize Tiger dataset) due March 2nd 
Febr 23  Spatial indexing: Rtrees.  The original Rtree paper: Rtree: A dynamic index structure for spatial searching (Guttman, 1984) 
Febr 28  Guest lecture by Jan Vahrenhold, U. Muenster:
Introduction to range searching with linear space. (lower bounds; threaded binary search tree; priority search tree; kdtree) 
jantalk.pdf 
March 2  Project 1 demo.
Range searching (continued): kdtrees. Demos: Kdtree  Construction of 2D kdtree 
kdtree slides.pdf
Bentley kdtree paper: pdf 
March 7  Range searching (continued): Range trees.  
March 9  Quadtrees.
Demos: Point Quadtree  PR quad tree 
Project 2 (aka Mapquest) due April 4 
March 28, 30  Rectanglerectangle intersections and interval tree.  
April 4  Discussion on Project 2: converting TIGER Line data to a graph
adjacencylist.
Review: Priority queues. Dijkstra's SSSP algorithm. 
Project 2 extended to April 11th. 
April 6  Discussion on Project 2: Dijkstra's SSSP algorithm.
Orthogonal line segment intersection. 

April 11  Line segment intersection. BentleyOttman sweep.
Demo (from Carleton University) 
Project 2 extended to April 13th. 
April 13  Project 2 demo and party.
[Redblue line segment intersection.] 

April 18  Scalability of algorithms to large inputs. External memory algorithms: the I/Omodel. External memory paradigms: clustering, buffering.
External memory mergesorting. External memory priority queue. Graph algorithms in external memory: BFS, DFS, SSSP. 

April 20 
Joe Sargent and Jon Todd:
The grid file. Bucket methods. 
Project 3 (range searching) due May 19th. 
April 25 
Wyatt Dumas and Christine Yip:
Binomial heaps. Fibonacci heaps. 
CLRS 
April 27  Robert Burns:
Finding the closest pair of points in the plane. 
CLRS 33.4 
May 2  Eric Toan:
Spatial indexing: Rtrees (continued): Applications, variations, the R*tree. 
Rtrees have grown everywhere
(Manolopulos, Nanolopoulos, Papadopoulos)
R*tree: An efficient and robust access method for points and rectangles (Beckmann, Kriegel, 1990) 
May 4  Vic Kotecha:
Dynamization: The logarithmic method. 

May 9  Riccardo Schmid:
Nearest neighbor queries. 

May 11  Jon Todd:
The Delaunay triangulation: Properties and randomized incremental construction. 

May 19  Final exam: project demo (912, Linux/G5 Lab) 