Geographic Information Science and Technology Graduate ProgramsContactHome

Course Descriptions and Syllabi

586 GIS Programming and Customization (4, Fa)

1. Scope and Purpose

Programming and customization is about writing computer programs to perform some GIS application which is either task specific or unavailable elsewhere. It is thus about using at least one programming language. In order to program well in one language you need to have some understanding of the issues surrounding programming languages in general. In an ideal world, the choice of programming language would be dictated by the application. The current programming 'paradigm' is the object-oriented approach. To understand this you need to be able to put it into the context of different programming languages, their approaches, their data structures and philosophies. This course outlines the essential features of programming, programming languages, data structures and approaches to designing programs.

This course will provide students with a critical understanding of the issues involved in designing and implementing software and GIS-based models. In addition it will enable students to write small scale GIS applications and design GIS-based models. The course is divided into four modules as follows:

  • Programming and Quality – programming languages, data types, style, portability, object oriented programming, UML. Software engineering concepts – specification, design, planning, software tools, testing, performance analysis, documentation and control.
  • Programming Tutorial – (Visual Basic and Java) a practical course in programming in Visual Basic with emphasis on interaction with the APIs utilized by GIS software – e.g. IDRISI. Java as an interoperable language.
  • Models and Modeling – the concept of models in science and operations. Strategies and design, rule-based/simple logic models, empirical/statistical, dynamical models, programming models.
  • GIS-Model Interaction – data model, updating and automation, visualization, systems approach, issues in GIS hosted modeling: interpolation, thresholds, hybrid systems and component failure/system reliability.

2. Learning Outcomes

On completion of this course students should be able to:

  • Discuss, critically, software engineering concepts, good programming methods and practices;
  • Program in Visual Basic;
  • Program small scale GIS-based applications in Visual Basic or Java;
  • Critically evaluate methodologies for applications development in GIS;
  • Analyze the GIS-model interaction and prepare/implement outline designs for modeling with GIS.

3. Teaching and Learning Strategies

The learning and teaching strategies are student centered. They are designed to encourage a deep-learning approach by using reflection and self-evaluation. A written Course Reader will be provided on-line, which will provide the essential background, the framework for study and essential detail. It will include self assessment exercises. Each section of this Reader will be framed with a context setting introduction, clearly identified learning outcomes and additional reading within the academic and professional literature. The reading materials consist of a series of book chapters and journal articles provided on-line, supplemented by a self-learning Programming textbook with associated software.

Numerous opportunities for students to discuss the course materials and accompanying issues with faculty and fellow students will be provided via e-mail, telephone, an online bulletin board, and at least two synchronous telephone or Webcam sessions in which students present or discuss one of the course readings and one of the items on which they are being evaluated. Students should anticipate spoken and/or written communication with the instructor and/or their fellow students on a weekly basis.

4. Assessment Strategies

There will be two written assignments, the first involves and an essay on good software development methods, the next involves a critical analysis of the object-oriented paradigm. There will be two projects requiring the students to create original programs, the first using Visual Basic, the other Java. These projects will be posted on the course’s online bulletin board for critique and evaluation by course participants. Each student will then select one of the posted projects, not their own, for critique of the program design. A final capstone project will demonstrate the student’s mastery of this course’s learning objectives. This requires students to create an original customized GIS program employing GeoMedia.

Software Quality Essay (10%)
Students will be assessed on their critical understanding of good software development.

Object-Oriented Programming Essay (10%)
A critical analysis of the object oriented paradigm

Visual Basic Project (15%)
Students will be assessed on their application of the principles and concepts of Visual Basic in constructing an original program.

Java Project (15%)
Students will be assessed on their application of the principles and concepts of Java in constructing an original program.

Two Programming Critiques (10%)
For the Visual Basic Project and also for the Java Project students will have to select one from each that is not their own for a critique.

Capstone Project (25%)
Students will design and execute an original customized GIS program employing GeoMedia to demonstrate their mastery of this course’s learning objectives. This program and its product map will be accompanied by a narrative elaborating on the programming design techniques employed in this project. The outputs will include an oral presentation that is organized around a slide show and presented in a synchronous mode in a specially scheduled telephone or Webcam session as well as the aforementioned narrative (i.e. written report).

Fifteen Reading Assignments (15% total; 1% per assignment)
Students will be required to write short discussions of a series of book chapters and journal articles that describe key programming applications, developments and challenges. Students will discuss at least one of these readings and their reports with the instructor via a synchronous telephone or Webcam session.

5. Course Outline

Week 1 – Introduction
An introduction to the nature of the course, including assignments, materials, resources, as well as support services and fellow students.

Readings – Worboys and Duckham (2004)

Weeks 2, 3 – Software Development
There is much more to programming than writing code. In fact writing the code is the easy part – making sure it is done properly is the difficult part. Many of the concepts presented in this section have already been considered as issues in GIS design and database design. Here, though, we take a look at issues of quality in the context of developing software. This is very important – almost anyone can learn to write computer code. Not that many people do it to high standards. Even when considering only small scale projects that do not affect many people, the final product will be much better if the quality principles outlined here are adopted.

Readings – Karssenberg and De Jong (2005a, b), Wesseling et al. (1996)

Weeks 4, 5, 6 – Object-Oriented Programming
Developing special programs for GIS applications needs to be done quickly, efficiently, accurately and with as few errors as possible. Object-oriented programming (OOP) enables this to be achieved, and is the way programming is done these days.
Object-orientation had its genesis in the modeling of real world processes. It is thus an approach which is well suited to programming almost any application as applications exist to solve real world problems. OO databases and OO GIS packages are adopting the approach for these reasons. It is essential, therefore, that anyone developing applications has a clear understanding of object-oriented programming. In this section we outline the essential features of the object-oriented approach.
Readings – Worboys and Duckham (2004)

Weeks 7, 8, 9 – Visual Basic
This section and the accompanying textbook introduce programming in Visual Basic. There are some notes in the Course Reader, but primarily the students will be working through the supplied textbook and they will learn how to create Visual Basic applications. The textbook is very much aimed at getting started in VB programming – it is not meant to be a reference work on Visual Basic. Students should find it very straightforward to use. The textbook is supplied with a student version of Visual Basic so students do not have to purchase Visual Basic to complete this course.
 
Readings – Holzer (2003)

Weeks 9, 10, 11 – Java
This section outlines the essential features of Java. Java is only nine years old and yet has taken the programming world by storm. This is a quite exceptional uptake for a language and the reason for it is the Internet. Java was designed to be platform independent, object-oriented, distributed, dynamic and simple. It has pretty much met its design aims. Java comes with a large number of "packages" that are sets of classes which provide the functionality for doing things like creating graphical user interfaces, networking, access databases and so on.

Java can thus be used to program web applications. It can also be used to program other applications – for example ORACLE's database. In terms of webGIS and database functionality it is therefore important that GIST students are familiar with Java.

Readings – Worboys and Duckham (2004)

Weeks 12, 13, 14, 15 – Developing Applications
We are moving into an era in which customization of the general purpose GIS packages will be important. GeoMedia Pro makes it possible (as do others) to program all the elements of GeoMedia Pro from a Visual Basic program. This section intends to get students started on this road. In a sense, the GeoMedia software can be regarded as providing components from which specific GIS applications can be created.

By this point in the course students should have a reasonable understanding of programming in Visual Basic. The difficult part is understanding the 'object model' of GeoMedia. Every element of the GeoMedia software is an object which can be manipulated from inside a VB program. Unfortunately, the complexity of the object model makes learning to use it a little time consuming.  However, the skills gained here (developing a way of understanding a complex object model and programming with it) will be applicable to other products such as ArcView 8.1.

Readings – Maguire (1999), Montoya (2003), Zerger and Smith (2003)

6. Student Learning Resources

The primary resource will be the Course Reader supplemented by a mixture of academic books, academic journal articles, and professional references.

The Course Reader walks the student through the key issues for each of the topics and offers two sets of tasks that revolve around reflection and self-reflection on the part of the students. The first set of tasks is a series of approximately 10-12 weekly exercises that students can complete in 1-4 hours. The answers for five of these exercises are shared with the other students in the course and submitted to the instructor for grading. The second set of tasks is a series of two paper assignments and three programming projects that students prepare and submit for grading. The papers rely on individual research and are more substantial in terms of scope and purpose than the exercises.

The academic book, academic journal and professional references serve slightly different roles. Of the two books specified the Holzner text is just intended to getting students started in Visual Basic programming - it is not meant to be a reference work, while the Worboys and Duckmam text is mainly for reference and/or to help with the preparation of papers. The academic journal and professional references, on the other hand, are an integral part of the course and help to facilitate reflection and self-reflection on the part of the students, who must prepare short reports summarizing the content of each book chapter or journal article and how it relates to the material provided in the Course Reader.

Books:
Holzner S (2003) Teach Yourself Microsoft Visual Basic .NET 2003 in 21 Days (2nd edition). Indianapolis, IN, Sams Publishing

Worboys M F and Duckham M (2004) GIS: A Computing Perspective (2nd edition). Boca Raton, FL, CRC Press

Book Chapters and Journal Articles:
Karssenberg D and De Jong K (2005a) Dynamic modeling in GIS: 1, Modeling in three spatial dimensions. International Journal of Geographical Information Science 19: 559-80

Karssenberg D and De Jong K (2005b) Dynamic modeling in GIS: 2, Modeling error propagation. International Journal of Geographical Information Science 19: 623-38

Maguire D J (1999) GIS customization. In Longley P A, Goodchild M F, Maguire D J, and Rhind D W (eds) Geographical Information Systems: 1, Principles and Technical Issues. New York, John Wiley and Sons: 359-69

Montoya L (2003) Geo-data acquisition through mobile GIS and digital video: An urban disaster management perspective. Environmental Modeling and Software 18: 869-76

Wesseling C G, Karssenberg D, Burrough P A, and Van Deursen W P A (1996) Integrating dynamic environmental models in GIS: The development of a dynamic modeling language. Transactions in GIS 1: 40-8

Zerger A and Ingle Smith D (2003) Impediments to using GIS for real-time disaster decision support. Computers, Environment and Urban Systems 27: 123-41