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
Week | Topic | Assignment |
---|---|---|
0 | Orientation |
|
1 | Lesson 1: Python 3, ArcGIS Pro & multiprocessing |
|
2 | Lesson 1: Python 3, ArcGIS Pro & multiprocessing (continued) |
|
3 | Lesson 2: GUI development with PyQT5 & package management |
|
4 | Lesson 2: GUI development with PyQT5 & package management (continued) |
|
5 | Lesson 3: Python geo and data science packages & Jupyter notebooks |
|
6 | Lesson 3: Python geo and data science packages & Jupyter notebooks (continued) |
|
7 | Lesson 4: Object-oriented programming with Python & QGIS development |
|
8 | Lesson 4: Object-oriented programming with Python & QGIS development (continued) |
|
9 | Final Project of the student's choosing |
|
10 | Final Project of the student's choosing (continued) |
|