[Bowdoin Computer Science]

CS 340 Spring 2008: Syllabus

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.
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: