Skip to main content

GEOG 489 - Advanced Python Programming for GIS

This is a sample syllabus.

This sample syllabus is a representative example of the information and materials included in this course. Information about course assignments, materials, and dates listed here is subject to change at any time. Definitive course details and materials will be available in the official course syllabus, in Canvas, when the course begins.

Overview

In GEOG 489, you will learn advanced applications of Python for developing and customizing GIS software, designing user interfaces, solving complex geoprocessing tasks, and leveraging open source. The course consists of readings, walkthroughs, projects, quizzes, and discussions about advanced GIS programming concepts and techniques, and a final term project. It complements the material covered in GEOG 485: GIS Programming and Software Development. The technology covered in the course includes Esri ArcGIS Pro/arcpy, Jupyter Notebook, Esri ArcGIS API for Python, QGIS, GDAL/OGR. Students will also use the Git version control software for code management and learn techniques for distributing Python applications to end-users.

Objectives

Students who successfully complete this course will be prepared to:

  • implement advanced Python techniques in a geospatial context;
  • investigate Python tool integration with a variety of proprietary and open-source GIS software;
  • create moderately complex GIS tools using Python;
  • apply methods for deploying and managing custom code;
  • design custom user interfaces for Python GIS tools. 

Required Materials

The materials listed here represent those that may be included in this course. Students will find a definitive list in the course syllabus, in Canvas, when the course begins.

Required Software

  • Windows OS (for Esri course components)
  • ArcGIS Pro and Esri ArcGIS Online account (free for Penn State students)

Prerequisites

None

Expectations

We have worked hard to make this the most effective and convenient educational experience possible. How much and how well you learn is dependent on your attitude, diligence, and willingness to ask for clarifications or help when you need them. We are here to help you succeed. Please keep up with the class schedule and take advantage of opportunities to communicate with us and with your fellow students. You can expect to spend an average of 10 – 15 hours per week on classwork.

Major Assignments

Students earn grades that reflect the extent to which they achieve the learning objectives listed above. Opportunities to demonstrate learning include:

  • Four lesson quizzes - 25% of the course grade;
  • Four programming assignments - 50% of the course grade;
  • Term project involving the development of a student-selected, instructor-approved, work-related application, or an application that meets the requirements laid out in an instructor-provided scenario - 25% of the course grade.
    • Ccode quality: 40% of the term project grade.
    • Code Completeness / Functionality: 40% of the term project grade.
    • Documentation and Writeup: 10% of the term project grade.
    • Creativity: 10% of the term project grade.

Course Schedule

Course Schedule
WeekTopicAssignment
0Orientation
  • Orientation activities
1Lesson 1: Python 3, ArcGIS Pro & multiprocessing
  • Project 1
  • Quiz 1
2Lesson 1: Python 3, ArcGIS Pro & multiprocessing (continued)
  • Project 1
  • Quiz 1
3Lesson 2: GUI development with PyQT5 & package management
  • Project 2
  • Quiz 2
4Lesson 2: GUI development with PyQT5 & package management (continued)
  • Project 2
  • Quiz 2
5Lesson 3: Python geo and data science packages & Jupyter notebooks
  • Project 3
  • Quiz 3
6Lesson 3: Python geo and data science packages & Jupyter notebooks (continued)
  • Project 3
  • Quiz 3
7Lesson 4: Object-oriented programming with Python & QGIS development
  • Project 4
  • Quiz 4
  • Term project proposal
  • Analysis and product description documents
8Lesson 4: Object-oriented programming with Python & QGIS development (continued)
  • Project 4
  • Quiz 4
  • Term project proposal
  • Analysis and product description documents
9Final Project of the student's choosing
  • Term project prototype
  • Final project
10Final Project of the student's choosing (continued)
  • Term project prototype
  • Final project