GIS Programming

Fall 2023


  • Monday 5:30-8pm, Gladfelter 336

Instructor Info:

  • Prof. Lee Hachadoorian
  • 104 Gladfelter Hall – In GIS Studio, enter 103A
  • Office Hours:
    • Monday 2:30-3:30pm
    • Tuesday 2:30-3:30 (office + virtual)
    • Thursday 2:30-3:30


Course Description

Building on previous coursework with Geographic Information Systems (GIS), students will learn computer programming in a GIS environment. Students will design and execute spatial data management and spatial analysis projects using automated geoprocessing functions available in the built-in scripting languages of prominent GIS software packages, with an emphasis on the Python programming language. Students will learn programming concepts such as variable typing, function definition, conditional evaluation, looping, and object-oriented programming. The course will also introduce geospatial programming strategies independent of any specific GIS software.

Python has rapidly become the de facto standard for scientific computing. It is also the scripting language used by two prominent GIS packages, ArcGIS (proprietary) and QGIS (open source). There is also an extensive and growing ecosystem of Python packages for geospatial analysis. The course will begin by focusing on using Python and ArcPy for ArcGIS scripting and automation, while also introducing fundamental concepts in programming, using the textbook Python for ArcGIS. We will also make use of DataCamp interactive tutorials to learn Python syntax and reinforce these fundamental concepts. This part of the course will feature weekly exercises and quizzes on these basic concepts.

The latter part of the course will introduce Python geospatial programming outside of the ArcGIS environment. In this part of the course, students will present tutorials on further topics in Python and ArcPy.


  • Fundamentals of GIS (GUS 5062) with B- or better, or equivalent
  • A laptop on which you can install software and data


When accessed on campus or through the Temple Library proxy server (Python for ArcGIS via proxy), you will be able to download this textbook in its entirety for free. You are also REQUIRED to obtain a print copy. The Springer “MyCopy” service is a print-on-demand service which will allow you to order a softcover copy for $39.99. You must be accessing SpringerLink on campus or log in through the Temple Library proxy server to get access to the MyCopy print-on-demand service.

Online exercises will be assigned from DataCamp:


Schedule in Brief

  • Week 1
    • Python Basics
    • Assignment Due
  • LABOR DAY - Note that because Labor Day, we are a week behind other courses, i.e., “Week 2” is the third week of the term, etc.
  • Week 2
    • Lists and Tuples
  • Week 3
    • ArcPy Tools
    • Quiz 1 - Python Basics, Strings
    • DataCamp - Introduction to Python due
  • Week 4
    • Control of Flow, Conditionals
    • Quiz 2 - Python Basics, Math
  • Week 5
    • Loops
    • Quiz 3- Lists
  • Week 6
    • Dictionaries
    • Quiz 4 - Conditional Evaluation
    • DataCamp - Intermediate Python for Data Science due
  • Week 7
    • Defining Functions
    • Quiz 5 - Loops
    • Programming Assignment 1 - Vector Analysis due
  • Week 8
    • Pandas and GeoPandas
    • Quiz 6 - Dictionaries
    • DataCamp - Python Data Science Toolbox (Part 1) due
  • Week 9
    • Quiz 7 - Defining Functions
  • Week 10
    • Student-Led Tutorial Presentation
    • Quiz 8 - Pandas Basics
    • DataCamp - Choose Your Own Adventure due
  • Week 11
    • Student-Led Tutorial Presentation
    • Programming Assignment 2 - Spatial Data Catalog due
  • Week 12
    • Student-Led Tutorial Presentation
  • Week 13
    • Student-Led Tutorial Presentation
  • Week 14
    • Student-Led Tutorial Presentation
  • Finals Period
    • Programming Assignment 3 - Analysis Automation due

Assignments in Brief

You will earn points along several tracks. Each track is worth up to 100 points. Your must progress along ALL tracks to be successful in this course. Your final grade is based on the lowest score earned along any track.

The tracks and points associated with each assignment in the track are as follows:

0-100 points. Your attendance score is a straight percentage of the class sessions you are present for.
Programming Quizzes (8)
34 base score.
10 points each for quizzes 1 through 5.
3 points each for quizzes 6 through 8.
Exercises (6): 1 bonus point each (6 max).
DataCamp (4)
60 base score
10 points each course completed fully
Programming Assignments (3)
69 base score
10 points Assignment 1
10 points Assignment 2
10 points Assignment 3
Student-Led Tutorial
70-100 points. The tutorial is a skills workshop developed and presented by teams of 3-4 students based on topics discussed in class. The tutorial is awarded up to 30 points based on written materials (a workbook) and presentation.