Course Webpage: http://web.pdx.edu/~jduh/courses/geog490w09/index.htm
(Or go to http://web.pdx.edu/~jduh/ and select “Courses-> GEOG 4/590(W09)”)
Instructor:
Office: CH 424J Phone:
503-725-3159 Office
hours: Mon 1-3; Wed 1-2
Lectures/Lab: Wednesday 17:30-21:10 in CH 469.
Course emailing list: gisprogramming@lists.pdx.edu
Pre-course survey: Go to the website below and follow the instructions to complete the questions by Jan 7, 9 pm. 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 (i.e., the second part of the class) 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%): (Student Projects)
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 5th 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) on February 4 before class. 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.
Click here for the information on the requests for academic accommodation and the policy on academic honesty.
Program Discussion Schedule
Week |
Tuesday Topics |
Presenters |
2 Jan 14 |
Joseph Rhodes James Manzione |
|
3 Jan 21 |
Tim Sennott |
|
4 Jan 28 |
Kate Clark Amber Gladieux |
|
5 Feb 4 |
· Getting and Setting Values · Adding Fields in Attribute Tables, Calculating Field Values (Example) · ArcObjects Geoprocessing (Chang CH1, 5) (Example) |
Hector Osuna |
6 Feb 11 |
·
Setting Layer Color (Example) ·
Class Breaks Renderer (Example) |
Richa Jain Margret Seiler Allen Byrd |
7 Feb 18 |
· Making UITool (Example) · Drawing Graphic Elements · ArcGIS Toolbar Commands |
Bill Wessinger Shayna Denny Merlin Larimer |
8 Feb 25 |
· Vector Buffering · Vector Overlay · Joining Data by Location |
Autumn Montegna Mike Martello Heather Zike |
9 Mar 4 |
· Raster Objects · Raster Local Operations · Raster Neighborhood Operations |
Jana LaFrenier David Silcock Morgan Crowell |
Week |
Discussion Topic/ Readings |
Lab |
1 Jan 7 |
· Course Overview (Slides) · VBA Programming Environment (Chang Ch1) |
Lab 1: Hello World Due Jan 14 before class. |
2 Jan 14 |
· Object-Oriented Programming (Burke Ch 1, 4) |
Lab 2: VBA GUI Objects and Numerical
Approximation (Burke Ch 2, 3) Due Jan 28 before
class. |
3 Jan 21 |
· Basic Programming Algorithms (Burke Ch 6, 8) |
Lab 2. |
4 Jan 28 |
· Introduction to ArcObjects (Burke Ch 9, 10) · ArcGIS Dataset and Layer Management (Burke Ch 14) (Slides) |
Lab 3: Sorting & File I/O Due Feb 11 before class. |
5 Feb 4 |
· Using ArcObjects: Attribute Data (Burke Ch 20, Chang Ch 5) (Slides) (Examples) Project Description Due |
Lab 3. |
6 Feb 11 |
·
Using ArcObjects: Layer Symbology (Burke Ch
15, 16, 17) (Slides) (Examples) Midterm exam |
Lab 4: ArcMap Layers & Attribute Manipulation Due Feb 25 before class. |
7 Feb 18 |
· Using ArcObjects: Command Tools (Burke 11, 12, 13) (Slides) (Examples) |
Lab 4. |
8 Feb 25 |
· Using ArcObjects: Vector Data (Chang Ch 10) (Slides) |
Lab 5: ArcMap UITool, Commands, and Vector Features Operations Due Mar 11 before class. |
9 Mar 4 |
· Using ArcObjects: Raster Data (Chang Ch 11) (Slides) |
Lab 5. |
10 Mar 11 |
· Optimizing VB codes (AiVosto VBShop) |
Students work on project |
Mar 18 |
· Final presentation (17:30-21:10) Final Project Guideline |
|