| Date | Topic | Reading | Assignment | 
| Jan 22 | Introduction.
 The C programming language. C: Input/output, loops, functions, call by value.  | 
  Chapter 1 K&R
   Overview (from Geometry Algorithms) Applications of Computational Geometry (from MIT) The C programming language (wikipedia) The C programming language The history of C  | 
|
| Jan 24 | C: Pointers. | K & R | Assignment 1 (DH-linked list) | 
| Jan 29 | C: Pointers. Header files. | GNU Emacs reference card
 Emacs quick reference  | 
|
| Jan 31 | C: More C (scanf, strings, Makefiles, compiling, command line arguments). | K & R | Assignment 2 (shifting segments) | 
| Febr 5 | OpenGL basics.  | 
Example: graphics1.tar |
  graphics2.tar
 The Red Book: Chapter 1 (Intro) | Chapter 2 (Drawing simple objects)  | 
Assignment 3 (OpenGL warmup) | 
| Febr 7 | OpenGL rendering (modelview and projection, order of transformations).  | 
    Red Book: Chapter 3 (Viewing) | Assignment 4 (OpenGL, planets or robot) | 
| Febr 12 | 2D and 3D transformations. Homogenous coordinates. | Red Book: Appendix G | Assignment 5 (texture and lighting in previous assignment). | 
| Febr 14 | 
   Visibility: ray-shooting vs. object space. Painter's algorithm. OpenGL z-buffer algorithm.  | 
   Project 1 (Visualize TIGER2006 data) (due Febr 26) | |
| Febr 19 | BSP trees | BSP who? (from Smith) | |
| Febr 21 | BSP trees | BSP faq | |
| Febr 26, 28 | Project 1 demo
    B-trees. (a, b)-trees.  | 
   B-tree (Wikipedia)
 B-trees (from Sedgewick, Princeton) Animations: B-tree | 234-trees  | 
|
| March 4 | B-trees. (a,b)-trees. | ||
| March 6 | Project 2 discussion. | Project 2 (SP on TIGER data) | |
| March 11, 13 | Spring break. | ||
| March 18, 20 | Spring break. | ||
| March 25 | Modeling flow on terrains. 
    Terrain guarding. Terrain meshing and simplification.  | 
   Richard Stallman & GNU. Stallman interview.  Free software foundation.
    Open-source software. Live and let license Linus Torvalds and Unix.  | 
(Due: Project 2 flowchart) | 
| March 27 | Quadtrees. | Additional reading: bibliography
 Demos: Region qdt | PR qdt | Spatial demos Applications: Terrain flythrough | Image representation | Collision detection  | 
|
| April 1 | Applications of Quadtrees. | (Due: Project 2 adjacency list of RT1 data) | |
| April 3 |  Spatial data (points, lines, polygons, rectangles) and spatial
   data problems (range searching, intersctions, nearest neighbors,
   containment, location).   First shot: Grids and bucketing.  | 
   (Due: Project 2 mouse clicking) | |
| April 8 | Shortest paths and Dijkstra's algorithm. | ||
| April 10 | Level-of-detail (LOD) rendering. 
 Discussion: LOD on Tiger data using quadtrees.  | 
 Readings: 
  | 
(Due: Project 2 shortest paths)
 Assigned: Project 3 (LOD on TIGER data)  | 
 
| April 15 | Discussion: LOD on Tiger data using quadtrees. | ||
| April 17 | Shortest paths algorithms. | Readings: 
  | |
| April 22 | Improving and engineering  shortest-path queries in road networks. 
    Range searching. 1D: binary search tree. 2D: The kd-tree. Range tree.  | 
    Readings: 
   
  |    
 |
| April 24, 29 | R-trees and bounding-volume hierarchies. | Readings: 
  | 
due April 29: construct and visualize tiles (Project 3 part 1) | 
| May 1 | The R*-tree. Space-filling curves. The Hilbert-R-tree. | R-tree demo (from UMD, by Hanan Samet) | |
| May 6 | More on R-trees and space-filling curves. 
 Class overview.  | 
The R-tree portal
 Readings: Sample chapters from R-trees: Theory and Applications by Manolopoulos, Nanopoulos, Papadopoulos, Theodoridis:  | 
|
| May 14, 2-5pm | Final project demo and presentations. | 
Other topics: