• R 5:30pm – 8:00pm, Gladfelter 341

Instructor Info:

  • Prof. Lee Hachadoorian
  • 104 Gladfelter Hall (inside GIS Studio)
  • Office Hours:
    • M 3:30 – 5:30pm, TUCC Suite 215 X1 (note location)
    • W 2 – 4pm
    • R 2 – 3pm
    • Note that I intend to arrive early to class (~5pm) as often as possible this term

General Information

Course Overview

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 and work in teams on a term project.


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


This course meets once a week. Missing any class meetings will hamper your ability to complete the work in this course. Your attendance percentage will also indicate the maximum final grade you can earn in this course. If you miss 3 classes, you have attended 78.6% of class meetings. Accordingly, your final grade will not be higher than a C+, regardless of any other work completed. Please see my attendance policy at my Temple web page:

Texts and other Resources

Readings and exercises will be assigned from:

  • Python for ArcGIS – When accessed on campus or through the Temple Library proxy server, 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 $24.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:

Additional resources:

Other resources for GIS scripting:



Each week during the first half of the course, exercises will be assigned from DataCamp and from the textbook. These exercises are graded based on completion, not correctness. They must be submitted on time so that we can continue to progress through the material. We will review some of the exercises at the beginning of the following class.

Programming Quizzes

Beginning with the third class meeting, each class will conclude with a short, graded programming quiz. The topic will be based on the lecture and reading from two weeks prior. The difficulty level should be comparable to or easier than the take-home exercise, so if you complete the exercise, are present for in-class review, and review the problem and answer afterwards, you should be well-prepared for the quiz.

The quizzes are cumulative. You will not be allowed to progress to the Quiz 2 if you do not pass Quiz 1.


This course will make use of online exercises provided by DataCamp. You must use your Temple email address to register for a premium account (free using a link provided by the instructor). You will be required to complete three assigned DataCamp courses, and one additional one of your choosing.

The three required courses are broken up by chapter in Canvas, so that, for example, it is suggested that you complete Ch 4 Loops from the Intermediate Python for Data Science course when we are reading Ch 10 Repetition: Looping for Geoprocessing and Ch 11 Batch Geoprocessing in the textbook. In some cases that means that DataCamp chapters are assigned out of order. Since the only thing you turn in is the course completion certificate, you may choose to progress through the course in the DataCamp order, as long as you complete all chapters on time.

Python Package Tutorials

During the second half of the course we will take a tour of the wide variety of Python packages for data and geospatial analysis. We will discuss packages of interest as a group, and two to three students will participate with me to plan a package presentation and class tutorial.

Term Project

The final project will be a more complex project which implements some algorithm, packages it into a module, and possibly, depending on how far we get into the course material, provides a GUI to execute the algorithm and view results.


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 the based on the lowest score earned along any track.

0-100 points. Your attendance score is a straight percentage of class sessions you are present for.
Programming Quizzes (8)
35 + 10 points each for quizzes 1 through 5, and 3 points each for quizzes 6 through 8.
Exercises (8)
1 bonus point each added to the SQL Quizzes track.
DataCamp (3)
60 + 10 points for each course completed fully. Courses must be completed on time. Courses completed 1 day late will be awarded 8 points, 2 days late will be awarded 5 points, 3 or more days late will not earn any points.
Python Package Tutorial
70-100 points. The tutorial will be awarded up to 30 points based on requirements announced separately. Since each tutorial will happen on a specifically scheduled day, this assignment cannot be revised for a higher grade.
Term Project
50-100 points. The term project will be awarded up to 50 points based on requirements announced separately.


Any student who has a need for accommodation based on the impact of a disability should contact me privately to discuss the specific situation as soon as possible. Contact Disability Resources and Services at 215-204-1280 in 100 Ritter Annex to coordinate reasonable accommodations for students with documented disabilities.

Academic Honesty

All submitted work should be your own. Please see additional information at

Classroom Environment

All persons participating in the course should be respectful of other students and the instructor in order to facilitate a civil learning environment. All persons participating in the course have a right to expect respectful treatment in the classroom.

Statement on Academic Freedom

Freedom to teach and freedom to learn are inseparable facets of academic freedom. The University has adopted a policy on Student and Faculty Academic Rights and Responsibilities (Policy # 03.70.02).