GEO 825 (Spring 2009) - Geoprocessing

Website: http://www.msu.edu/~ashton/classes/825
Printable Course Syllabus (pdf)

I. Instructor
Dr. Ashton Shortridge
235 Geography Building
phone: 432-3561
email: ashton@msu.edu
office hours: 1 - 2:45 pm Tuesday & Wednesday, or by appointment

II. Time and Place
Monday / Wednesday 3:00 - 4:50 pm, 233 Geography Building (Sun Lab)
Final Exam Slot: Thursday, May 7, 3-5 pm

III. Course Objectives
The definition of Geographic Information Science may depend on who you ask, but most would agree that it is concerned with the manner in which we think about spatial phenomena, how we model the Earth conceptually and computationally, and how we extract information from these conceptual models. Perhaps the heart of GIScience is geocomputation, or geoprocessing.

We could explore geoprocessing in many ways. In spirit, this course will treat it as a fundamental modeling and analysis challenge. In practice, this course will feel a lot like a computer programming course.

My aim is to teach students to think in a critically analytical manner about spatial problems. This will be accomplished through the lens of computer programming. Specifically you will learn a currently popular and relatively accessible language - Python - well enough to do interesting, substantive things with spatial data modeling and analysis. I do not assume any programming knowledge on your part, though of course I expect you to be comfortable on computers in general and specifically with the Sun lab machines.

I think the course will be difficult - in the sense that it will be a lot of work on my part and your part - but hopefully extremely rewarding. You should gain valuable computing skills, a solid grasp of the object-oriented approach to programming design, and an understanding of how spatial problems can be approached via a computational perspective.

Specific Topics
Python & Programming Basics
Spatial Data Structures
Working with GIS File Formats
Vector & Raster Algorithms
Object-Oriented Programming
Database Linkages
Internet Applications
Spatial Graphics
Cellular Automata & Spatial Agent Based Models

IV. Grades

20% Final Project: Preproposal, Proposal, Report, Presentation. See Section VII.

15% Miniprojects: Crash coding exercises; you have a week to do something interesting.

35% Assignments: In-lab programming exercises

20% Quizzes and Exams: Quizzes (and a short exam) on material covered in class or assigned.

5% Class Discussion Leadership: Formally lead classroom discussion on a class topic.

5% Basic Class Participation: Ask and answer questions, don't skip or come late to class.

V. Readings

Papers on geoprocessing topics will be assigned regularly. Students are expected to read them prior to class and come prepared to discuss the material. One student will be assigned to lead discussion on each paper.

Additional References
There are a lot of nice general texts on Python, but I found nothing spatial. You may wish to obtain an introductory book for learning the language. Individual tastes vary too much for me to recommend any particular one.
Online Python references and tutorials will be provided in class.
A good text on spatial programming in Java is Jo Wood. 2002. Java Programming for Spatial Sciences. New York: Taylor & Francis.

VI. The Language
Python is an open source, highly flexible, relatively easy to learn language. Version 3 ('3000', etc) just came out in December 2008, but we will use 2.6 in class. Note that there are substantial differences between these versions! Code written for version 2.x won't necessarily work in version 3.x! You may wish to install 2.6 on your own computer. Some students do this on a notebook machine which they bring to class. Be aware that, although I can offer advice, I cannot formally provide support for non-department machines. If you go this route, life will be much easier if you work in a linux environment; other students have used Ubuntu for this course.

VII. The Project
The project will be a significant implementation of some geoprocessing problem in Python. It is a group project; two or perhaps three people per group. I will expect you to complete the work over the final two weeks of the semester, which limits the extent to a medium-scale project. The project should be problem oriented; that is, the motivation should not be simply to hack code, but to deal with a geographical issue. That said, the result of the project must be a program in Python that deals with the issue. Deliverables:
Preproposal (5% Project grade) Due Wednesday, April 1, 5pm. (no fooling!)
Up to 1 typed page, including Title, Group Members, Research Problem, Objective, Data Source.

Proposal (20% Project grade) Due Wednesday, April 15, beginning of class.
Up to 2 typed pages. Include Title, Research Team, Research Problem, Objective, Data Sources, Program Design, Time Line. Include more detail and changes since the Preproposal.

Presentation (35% Project grade) Given Thursday, May 7, 3-5 pm.
Polished presentation covering the project objectives, programming design, results, and challenges. The presentation will be followed by program demonstration.

Paper (40% Project grade) Due Wednesday, May 6, 5 pm.
5-9 page paper consists of all elements covered in the Proposal, along with modifications. Special focus should be on program design issues, as well as the results and implications. Figures and tables should be included if they are helpful. If your report includes ideas from other people or works, you need to cite them. Failure to indicate sources is plagiarism. If you are unsure, reference or talk to me about it. Cite any sources you employed for information or guidance

VIII. Weekly Outline
A weekly outline, including assignments, quiz dates, code for labs, and other useful stuff is available. It will change frequently. Keep on top of where we are and where we are going!


Jump to Ashton Shortridge's Homepage
This page last modified January 5, 2009