[Bowdoin Computer Science]

CS 350 Spring 2004: Syllabus

Here is a tentative syllabus.

Here is what actually happened.

Date Topic Notes, Reading, Assignments
Jan 26 Introduction to GIS. What is GIS? Applications of GIS. GIS and Computer Science. Intro to C programming language.
C: Input/output, loops, functions, call by value.
L1.ppt. Chapter 1 K&R
Jan 29 Geographic data representation. Rasters, TINs, contour lines.
C: Pointers.
Febr 3 C: Pointers. Pointer arithmetic. Command line arguments. Header files. Assignment 1 (Doubly linked list with dummy head ddlist)
Febr 5 C: Dummy header doubly linked lists. scanf(). File I/O. Makefiles.
Flow modeling on grid DEMs.
Assignment 2 (grid multiply). Flow.ppt
Febr 10 Unix tutorial.
C: Makefiles.

Unix tutorial, The Red Book, Assignment 3 (OpenGL warmup)
Febr 12 Assignment 3 demo.
Assignment 4 (2D terrain rendering)
Febr 17 OpenGL: Transformations (rotation, translation).
Flow modeling: flat areas.
Chapter 3(Viewing), Appendix G (Homog coord and transf. matrices)
Febr 19 Assignment 4 demo.
OpenGL: Transformations (rotation, translation, scaling) and homogenous coordinates.
Assignment 5 (3D terrain rendering)
Febr 24 OpenGL: Order of transformations.
Flow modeling: flat areas.
Febr 26 Assignment 5 demo.
Flow modeling: Flat areas and flooding.
Assignment 6 (Flow modeling)
March 2 Flow modeling: Flow accumulation. Project 1: Flow modeling on grid DEMs
March 4 Flow modeling: Flooding. Flooding
March 9 Line simplification. Douglas-Peucker algorithm. Improvement to O(n lg n).
Imai-Iri algorithm.
Speeding Up the Douglas-Peucker Line-Simplification Algorithm(Hershberger, Snoeyink)
March 11 Project 1 demo. Fast Polygonal Approximation of terrain and height fields (M. Garland and P. Heckbert)
March 16, 18, 23, 25 Spring break!!
March 30 Imai-Iri algorithm. Improvement to O(n2).
Grid-to-TIN transformation. Terrain simplification.
Project 2: Terrain simplification
April 1 Terrain simplification. Incremental refinemement and possible optimizations. Worst-case and average case analysis.
April 6 Terrain simplification. Decimation. Data structures for triangulation.
April 8 Dealing with very large data. Motivation. Scalability of algorithms to massive data. Experiments. RAM model limitations. The I/O-model. Analysis of flow direction and flow accumulation algorithms.
April 13 I/O-efficient sorting.
I/O-efficient priority queue.
I/O-efficient flow accumulation.
April 15 Project 2 demo [race and party].
April 20 Riccardo Schmid and Phillippe Alepin:
Orthogonal range searching in 1D and 2D. The quadtree The kd-tree.
Point Quadtree
PR quad tree
Construction of 2D kd-tree
April 22 Wyatt Dumas and Greydon Foil:
Line-segment intersection - the Bentley-Ottmann sweep.
Lecture notes (M. Schmid)
Demos: demo 1 | demo 2
April 27 Pat Donahue and Somboon Chiewcharnpipat:
From point sample to TIN: The Delaunay triangulation. Properties. Algorithms.
April 29 Nick Troy and Richard Hoang:
Computing contour lines on TINs. Brute force method. The interval tree.
Efficient methods for isoline extraction from a TIN M. van Kreveld. Int. J. of GIS, 10:523--540, 1996
May 4 Visit DeLorme
May 6 Jon Todd, Brendan Dickinson and Nick Powell:
Computing the convex hull of a point set in 2D. The brute-force method. Gift wrapping. Quickhull. Graham's scan. Lower bound.
May 11 [Grad school] Choosing a grad school
Who wants to be a Ph.D?
GRE general | Practice test
GRE subject
May 21 Final exam: project demo (9-12, Linux Lab)