Course Webpage: http://web.pdx.edu/~jduh/courses/geog490f07/index.htm
(Or go to http://web.pdx.edu/~jduh/ and select “Courses-> GEOG 4/590(F07)”)
Instructor:
Office: CH 424J Phone:
503-725-3159 Office
hours: Mon 1-3; Wed 1-2
Lectures/Lab: Tuesday and Thursday 12:00-13:50 in CH 418 (Tue) and CH469 (Thu).
Thursdays are scheduled for labs. Lab attendance is mandatory.
Course emailing list: gisprogramming@lists.pdx.edu
Pre-course survey: Go to the website below and follow the instructions to complete the questions by September 27, 3pm. http://survey.oit.pdx.edu/ss/wsb.dll/jduh/gisprogramming.htm
Course Objectives
Introduction to Visual Basic GIS programming languages for
customizing applications and streamlining spatial analysis. Topics include GIS
software environment, programming syntax and styles, interface customization,
GIS routines and functions, and basic algorithms. Programming lab included.
Prerequisite: GEOG 488/588. After
completing the course, students will be able to design and develop VBA applications in ArcGIS.
The text for this course is Getting to Know ArcObjects: Programming
ArcGIS with VBA by Robert Burke,
2003 (ESRI Press. ISBN: 1-58948-018-x). The
book is available at the Portland State
Bookstore and from Amazon.com or
ESRI.com. The optional book is Programming ArcObjects with VBA: A
Task-Oriented Approach (2nd Edition) by Kang-Tsung Chang, 2007 (CRC
Press. ISBN: 0-8493-9283-7).
The lecture component of this course consists of discussions of the readings and therefore you should have read the material before class. Students are expected to come to class ready to be active participants in the discussion.
|
Class Participation |
15% |
|
Lab Assignments |
45% |
|
Midterm |
15% |
|
Term Project |
25% |
Class
Participation (15%)
Attendance
to this course is mandatory. If you miss more than two class periods then you
will be penalized five percent of your final grade per absence. PLEASE DO NOT MISS
CLASS. You are expected to take part in the discussions and if you are not in
class then you cannot. If you are repeatedly late you will be given an absence.
All students are required to select a
programming topic from a list provided by the instructor (see the last page of
the syllabus) and give a 10 to 15 minutes discussion on a VBA script in class.
You must find a bug-free VBA program and walk through the program in class.
Students who are responsible for the week’s topics must email the program
and its source to the course mailing list by 5pm the day before the class. The
discussion should include an overview of the program, a quick demonstration,
and a line-by-line walkthrough of the program. Sample programs can be found
from the textbook CDs, ESRI ArcScripts, ESRI Developer Network (EDN), or other
sources.
During
the lab sessions on Thursdays in CH469 you will develop VBA programs on the
computers. If you do not finish the labs during the assigned time periods the lab
also has open hours. CH 475, CH 1, CH 324, and Broadway Computer Lab all have
ArcGIS on the computers. Students should submit their lab work
digitally, with the source code, test data, and write-up documents zipped in
one file. If the file size is too big to send via email, please put the zipped
file in a network space and send the link to the instructor.
Midterm Exam (15%):
There
will be one in-class, closed-book midterm exam and no final exam. Unscheduled
in-class quizzes will be administered without notifications. Results of these
quizzes will be counted toward class participation.
Term Project
(25%):
Individual
students will work on a GIS application they identify and develop VBA program
to implement the application. Each student must submit a one-page description
of the VBA application on the 4th week and present and demonstrate the VBA
application during the scheduled final exam time.
VBA Application Description Guideline
It’s a good idea to browse online sources to see what VBA scripts have been developed. This will give you a sense of the scope and complexity of the program. Each student is required to submit a typed project description to my mailbox in 424 CH or my email address (jduh@pdx.edu) by noon on Oct 16 (Tuesday). Your final VBA application will be implemented following the description. The description should include the following information.
You must develop a Powerpoint presentation that includes the essential information described in the VBA AP description and a reflection of the main challenges and major breakthrough in the project. Accompanying the presentation is a live demonstration of your AP. You must acknowledge the sources of any codes that you borrow in your AP. You will fail this class if you commit plagiarism.
Program Discussion Schedule
|
Week |
Tuesday Topics |
Presenters |
|
2 Oct 2 |
· CASE and IF THEN Statements · FOR NEXT and DO WHILE Statements |
|
|
3 Oct 9 |
· Using Subroutines and Functions (Example) |
Craig Warden |
|
4 Oct 16 |
Heath Brackett Chris Long |
|
|
5 Oct 23 |
· Adding Fields in Attribute Tables (Slides, Example) · Getting and Setting Values |
|
|
6 Oct 30 |
·
Setting Layer Color (Slides, Example) ·
Class Breaks Renderer (Slides, Example) ·
Selecting Features (Example) |
Ron Mosgrove Thomas Trotter Luis Murillo |
|
7 Nov 6 |
· Making UITool (Slides, Example) · Drawing Graphic Elements (Slides, Example) · ArcGIS Toolbar Commands |
Amarina
Wuenschel Jessica Leonard |
|
8 Nov 13 |
· Vector Buffering · Vector Overlay (Slides, Example) · Joining Data by Location |
Tyler Vick |
|
9 Nov 20 |
· Raster Objects (Slides, Example) |
Robert Chappell Loren Meagher Charles Cannon |
|
Week |
Tuesday |
Thursday Lab |
|
1 Sep 25/27 |
· Course Overview (Slides) · VBA Programming Environment (Chang Ch1) |
Lab 1: Hello World (Slides) Due Oct 9 by 12. |
|
2 Oct 2/4 |
· Object-Oriented Programming (Burke Ch 1, 4) |
Lab 2: VBA GUI Objects and Numerical
Approximation (Burke Ch 2, 3) Due Oct 18 by noon. |
|
3 Oct 9/11 |
· Basic Programming Algorithms (Burke Ch 6, 8) |
Lab 2
contiuned. |
|
4 Oct 16/19 |
· Introduction to ArcObjects (Burke Ch 9, 10) · ArcGIS Dataset and Layer Management (Burke Ch 14) (Slides) Project Description
Due |
|
|
5 Oct 23/25 |
· Using ArcObjects: Attribute Data (Burke Ch 20, Chang Ch 5) (Slides) (Examples) |
Lab 3 continued. |
|
6 Oct 30/ Nov 1 |
·
Using ArcObjects: Layer Symbology (Burke Ch
15, 16, 17) (Slides) (Examples) Midterm exam |
|
|
7 Nov 6/8 |
· Using ArcObjects: Command Tools (Burke 11, 12, 13) (Slides) (Examples) |
Lab 4 Continued. |
|
8 Nov 13/15 |
· Using ArcObjects: Vector Data (Chang Ch 10) |
Lab 5: ArcMap UITool, Commands, and Vector Features Operations |
|
9 Nov 20/22 |
· Using ArcObjects: Raster Data (Chang Ch 11) (Slides, Examples) |
Thanksgiving – No class |
|
10 Nov 27/29 |
· Optimizing VB codes (AiVosto VBShop) |
Students work on project |
|
Dec 6 (Thu) |
· Final presentation (10:15-12:05 CH 418) Final Project Guideline |
|