[Bowdoin Computer Science]

CS 350 Spring 2006: Syllabus

Here is what happened in class.

Date Topic Notes, Reading, Assignments
Jan 23 Introduction to GIS. What is GIS? Applications of GIS. GIS and Computer Science.
Why C?
Intro to emacs, etc.
C: printf/scanf.
The C programming language (wikipedia)
The C Programming language
The history of C
GNU Emacs reference card
Emacs quick reference

read Chapter 1 K&R
Jan 25
C: Arrays, arrays of chars. Pointers. Pointers and arrays.
C prorgamming tutorial (by Steve Holmes)
Jan 30, Feb 1
C: Pointers and parameter passing to functions. Header files. Structures. Scope of variables. Compiling multiple files. Makefiles. Programming style.
On style: 32 Bits of style
Assignment 1 (due Mon Febr 6th)
Feb 6 C: Dynamic 2d arrays. Command line arguments. Files.
Assignment 2 (due Mon Febr 13th)
Feb 8 C: File I/O.
OpenGL: Basics. : graphics1.tar
The Redbook : OpenGL Programming Guide
Chapter 1: Introduction to OpenGL
Chapter 2: Drawing geometric objects
Assignment 3 (due Wed Febr 15th)
Feb 13, 15 Assignment 2,3 demo, questions and comments.
Discuss/preview assignment 4.
OpenGL: Homogenous coordinates.
Redbook Appendix G: Homogenous coordinates
Assignment 4 (due Wed Febr 22nd)
Feb 20, 22 Assignment 4 demo, questions and comments.
Discuss/preview assignment 5,6.
OpenGL: Modelview transformations.
Flow modeling.

Assignment 5 (due Wed March 1st)
Feb 27, March 1 Classes canceled.
Project 1: Flow modeling on grid terrains (due wed March 8th)

Assignment 6
March 6 Virtual memory.
Assignment 5, 6 demo.
Project discussion.

March 8 Project 1 demo.


March 27 Line simplification. Douglas-Peucker and Imai-Iri algorithms. (Rob Burns)
DP: see sec 1,2,3 in Speeding DP simplification algorithm (Hershberger, Snoeyink)
II: see sec 3 in A new approach o subdivision algorithm (Berg, Kreveld, Schirra)
March 29, April 3, 5 Terrain simplification.
Project 2 (due April 26th).

Digital elevation models and TIN algorithms (Kreveld)
Fast polygonal approximation of terrain and height fields (Garland, Heckbert)
Mon April 10 Binary space partition trees (Christine Yip). Hidden surface removal. Painter's and z-buffer algorithms. Demo
BSP trees tutorial (Bruce Naylor)
Lecture notes on Painter's algorithm (mit)
Lecture notes on visibility and BSP (mit)
Painter's algorithms slides on Painter's and z-buffer algorithms
Wed April 12 Visibility (Yi Zhuang)
Plane sweep for GIS (Kreveld'98)
Higher isn't necessarily better (Franklin'94)
Sitting observers on terrains (Franklin'02)
Mon April 17 Contour lines (Sunny)
Efficient methods for isoline extraction (Kreveld)
Digital elevation models and TIN algorithms (Mark van Kreveld)
Wed April 19 Project 2 discussion.

Mon April 24 Quad-trees, kd-trees (Eric Loss) Quadtree/kd-tree Demos
Quadtree (Berkeley)
Quadtree (UBC)
kd-tree (wikipedia)

Wed April 26 Project 2 demo, party and discussion.
Mon May 1 Terrain simplification (Christopher Field). Fast polygonal approximation of terrain and height fields (Garland and Heckbert, 1995)
Simplification using quadric error metrics (Garland & Heckbert, 1997)
Multiresolution modeling: survey (Garland, 1999)
Wed May 3 Scalability to massive datasets. RAM model vs I/O-model. Scanning vs. random access. I/O-efficient sorting.

Mon May 8 I/O-efficient priority queue. I/O-efficient techniques.

Wed May 10th Delaunay triangulations. Incremental construction.

May 19 FINAL EXAM (project demo)