[Bowdoin Computer Science]

Algorithms in GIS (csci 3225)

Fall 2015: Tu, Thu 1-2:25 in Searles 126


Basic Info

Prerequisites: csci 101 (Intro to CS), csci 2101 (Data Structures), and csci 2200 (Algorithms).

Textbook (required): none.

CS curriulum: This class fullfills the Projects requirement and the Theory requirement in the CS curriculum. It involves a significant amount of programming, culminating with a project.

Office hours: Tuesdays 2:30-4, Fridays 10 - 11:30. For quick questions you can drop by any time the door is open. Otherwise, send me an email.

Class webpage: http://www.bowdoin.edu/~ltoma/teaching/cs3225-GIS/fall15/. Note that this is a link from my personal website at Bowdoin. This site will contain all class-related material along the semester. The class does not have a Blackboard site (I believe class information and materials shoud be public and easily available).


Geographic Information Systems (GIS) are systems for storing, displaying and analyzing geographically referenced, or geospatial data. GIS started in the 1970's with primitive systems that served mainly to visualize maps.

Today, routine GIS tasks range from visualization, to sensor monitoring, to modeling of phenomena like flow, radiation, erosion, deposition, infiltration, visibility, to network computations like shortest paths, to name just a few. The term "GIS" may refer broadly to comprehensive packages like ArcGIS or GRASS that offer a wide spectrum of functionality, or to small libraries and modules that perform specialized tasks.

GIS are used by a growing number of people mainly in earth, atmospheric and oceanographic sciences, but also in the digital humanities and other disciplines. In the past twenty years, with the growth of computer technology and the explosion of digital data, GIS has seen a tremendous growth and established as a field of its own.

For GIS users, the goal of studying GIS is to understand the wealth of functionality provided by standard GIS software like ArcGIS and how to model a new problem with the functionality provided by the package. For example, a city planner may want to find the best location to host an ugly construction. To this end, she might ask: What data is available? How can all the layers of data be integrated and shown on the same map? What sort of functions are provided by a particular GIS that can be used for this problem? We are not going to look at using GIS and packages like ArcGIS in this class.

For GIS developers, the goal of studying GIS is to create new modules that either solve new problems and offer new functionality, or improve in some way over previous modules. GIS provides a rich source of problems, spanning from theory, to data bases, networks and systems and algorithm engineering. This class explores some of the fundamental theoretical problems encountered in GIS from an algorithmic point of view.

The goals:

Work and Grading policy

Most of the work for the class will come from programming assignments, some of which are framed as smaller assignments culminating with larger projects. There will be a final project that will occupy the last 3-4 weeks of the class, and there will be presentations, proposals and reports associated with the final project. Class participation is strongly encouraged and will be weighed in. Generally speaking, I hope that you will not only show up in class, but generally speaking contribute to the learning experience of the class.

Collaboration policy: You can work alone if you want, but you are encouraged to find a partner for all assignments and projects. No more than two per team, though.