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 first-in first-out 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. B-trees and (a,b)-trees. |
Virtual memory (Wikipedia)
B-tree (Wikipedia) B-tree (semaphorecorp) |
Febr 16 |
Assignment 3 demo.
B-trees and (a,b)-trees (continued). Animations: 234-trees | B-tree |
Assignment 4 (visualizing segments from a
file)
Look at: graphics2.tar |
Febr 21 |
B-trees 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: R-trees. | The original R-tree paper: R-tree: 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; kd-tree) |
jan-talk.pdf |
March 2 | Project 1 demo.
Range searching (continued): kd-trees. Demos: Kd-tree | Construction of 2D kd-tree |
kd-tree slides.pdf
Bentley kd-tree 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 | Rectangle-rectangle intersections and interval tree. | |
April 4 | Discussion on Project 2: converting TIGER Line data to a graph
adjacency-list.
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. Bentley-Ottman sweep.
Demo (from Carleton University) |
Project 2 extended to April 13th. |
April 13 | Project 2 demo and party.
[Red-blue line segment intersection.] |
|
April 18 | Scalability of algorithms to large inputs. External memory algorithms: the I/O-model. External memory paradigms: clustering, buffering.
External memory merge-sorting. 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: R-trees (continued): Applications, variations, the R*-tree. |
R-trees 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 (9-12, Linux/G5 Lab) |