GEOG 489
Advanced Python Programming for GIS

GEOG 489 Syllabus

PrintPrint

Welcome to Advanced Python Programming for GIS - Spring 2024

This syllabus is divided into several sections. It is essential that you read the entire document. Together these serve the role of our course "contract."


Instructors

James O'Brien (Summer 2024: May-Jul., Spring 1, 2024: Jan. - Mar.)

Jan Oliver Wallgrün (Fall 2, 2024: Oct. - Dec.)

Jim Detwiler (other times) 


Course Overview: GEOG 489 - Advanced Python Programming for GIS

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.

This section is being offered to students around the globe through Penn State's World Campus. It is a "paced" course, which means that there is an established start and end date and that you will interact with other students throughout the course. The course materials consist of the software mentioned earlier, and a required course website that contains the online lessons, and a Learning Management System (Canvas) where communications, activities, and assessments will be accessed.

The course is 10 weeks in length (plus a required "Orientation Week" preceding the start of the course). There are a total of five lessons, which are each two weeks in length. (Additional information about topics to be covered and time frames can be found under the "Course Schedule" section of this syllabus.)

As with other MGIS courses, you will want to check out the course discussions regularly. That's where students and instructors share comments, pose questions, and suggest answers. I strongly encourage you to get in the habit of logging into Canvas every day to check in on the class. With only occasional exceptions, I usually check discussions six days a week. You can be sure that I will read, but not necessarily respond to every single message.

What will be expected of you?

Lessons should require 20-30 hours of work per lesson, depending on the speed at which you work and your programming experience. Included in the time to complete a lesson is time to complete projects and related activities. You'll be glad to know that you don't have to show up for class at a certain time! All you need to do is complete each project and a quiz before the published deadline at the end of the week.

My colleagues and I have worked hard to make this the most effective and convenient educational experience possible. How much and how well you learn is ultimately up to you. You will succeed if you are diligent about keeping up with the class schedule and if you take advantage of opportunities to communicate with me as well as with your fellow students.

For a more detailed look at what will be covered in each lesson, as well as due dates for our assignments and activities, please refer to the Course Schedule section of this syllabus and the Calendar in Canvas.  


Course 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 Course Materials

In order to take this course, you need to have the required course materials and an active Penn State Access Account user ID and password (used to access the online course resources). All (other) materials needed for this course are presented online through our course website and in Canvas. In order to access the online materials, you need to have an active Penn State Access Account user ID and password (used to access the online course resources). If you have any questions about obtaining or activating your Penn State Access Account, please contact the Outreach Helpdesk.

In addition, you will need the following software:

  • Windows OS (for Esri course components)

  • ArcGIS Pro and Esri ArcGIS Online account (installation instructions provided at the beginning of the course)

If you have questions regarding these software products, please contact the instructor.

Assistance with textbooks

Penn State honors and values the socioeconomic diversity of our students. If you require assistance with the costs of textbooks for this course, please contact your academic advisor. For additional needs, related to socioeconomic status, please visit Project Cahir or visit the Office of Student Care and Advocacy at 222 Boucke Building or call 814-863-2020.

Using the Library

Just like on-campus students, as a Penn State student, you have a wealth of library resources available to you!

As a registered user of Penn State Libraries, you can...

  • search for journal articles (many are even immediately available in full-text);
  • request articles that aren't available in full-text and have them delivered electronically;
  • borrow books and other materials and have them delivered to your doorstep;
  • access materials that your instructor has put on Electronic Reserve;
  • talk to reference librarians in real-time using chat, phone, and email;
  • ...and much more!

To learn more, see the Library Information for Off-site Users.


Assignments and Grading

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.

  • Code Quality: 40%
    Quality criteria will be posted in the Deliverables section of each project.
  • Code Completeness / Functionality: 40%
    All required elements should be present. Project reports should be properly linked to your Penn State personal home page.
  • Documentation and Writeup: 10%
    Project reports must be submitted to Canvas by the assigned due date. Contact the instructor if you need extra time. Most activity deliverables are due on Tuesdays, one week from the start of the assignment (refer to the course calendar for the exact schedule). Please make every effort to submit your deliverables on time.
  • Creativity: 10%
    Adequate fulfillment of all the requirements for an assignment merits a score of 90 out of 100 percent. Ten percent (or a fraction thereof) has been reserved and will be awarded for projects with content that exceeds that which is outlined in these instructions. Examples of such work include but are not limited to providing particularly good, lengthy descriptions and explanations in the maps' captions; posing a few good questions concerning project content, or experimenting with the software and demonstrating new skills or operations. This criterion is particularly important in this course as it differentiates portfolios that are otherwise very similar.

Letter grades will be based on the following percentages:

Letter Grades and Percentages
Letter Grade Percentages
A 90-100%
A- 87.5-89.9%
B+ 85-87.4%
B 80-84.9%
B- 77.5-79.9%
C+ 75-77.4%
C 70-74.9%
D 60-69.9%
F <60%
X Unsatisfactory (student did not participate)

Percentages refer to the proportion of all possible points earned by the student.


GEOG 489 Course Schedule

image Printable Schedule

Course length: 10 weeks

Below, you will find a summary of the learning activities for this course and the associated time frames. Specific details for each project can be found in each lesson. Key due dates can be found in the course Calendar in Canvas. Lessons are revealed sequentially to keep everyone on roughly the same schedule and increase the chances that you and your fellow students will benefit from using the Canvas discussion forums and interactive videoconference sessions.

The course schedule is subject to change.  

Assignments and Activities
Week Lesson Assignments and Activities
Week 0 Lesson 0: Orientation Complete the steps outlined in our course orientation. (Required!)
Weeks 1-2 Lesson 1: Python 3, ArcGIS Pro & multiprocessing
  • Complete Project 1.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 1 quiz.
Weeks 3-4 Lesson 2: GUI development with PyQT5 & package management
  • Complete Project 2.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 2 quiz.
Weeks 5-6 Lesson 3: Python geo and data science packages & Jupyter notebooks
  • Complete Project 3.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 3 quiz.
Weeks 7-8 Lesson 4: Object-oriented programming with Python & QGIS development
  • Complete Project 4.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the quiz for Lesson 4.
  • Submit your term project proposal for a project that requires the application of knowledge gained earlier in the course and/or that delves into an advanced Python topic. Submit analysis and product description documents.
Weeks 9-10

Final Project of the student's choosing

  • Submit a term project prototype.
  • Complete your approved project.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Submit the zipped files to the Final Project drop box in Canvas.

Course Policies

Late Assignments

"Late" is defined as anything turned in after the date and time specified in the Course Calendar on Canvas. A flat penalty of 10% per assignment will be assessed. For example, if you do not turn in a 10-point writing assignment on time, 1 point will be deducted when you turn in that assignment.

Citation and Reference Style

Academic Integrity and Citation Style Guide here. 

Technical Requirements

For this course, we recommend the minimum technical requirements outlined on the World Campus Technical Requirements page, including the requirements listed for same-time, synchronous communications. If you need technical assistance at any point during the course, please contact the IT Service Desk (for World Campus students) or Penn State's IT Help Portal (for students at all other campus locations).

Internet Connection

Access to a reliable Internet connection is required for this course. A problem with your Internet access may not be used as an excuse for late, missing, or incomplete coursework. If you experience problems with your Internet connection while working on this course, it is your responsibility to find an alternative Internet access point, such as a public library or Wi-Fi ® hotspot.

Mixed Content

This site is considered a secure web site, which means that your connection is encrypted. We do, however, link to content that isn't necessarily encrypted. This is called mixed content. By default, mixed content is blocked in Internet Explorer, Firefox, and Chrome. This may result in a blank page or a message saying that only secure content is displayed. Follow the directions on our Technical Requirements page to view the mixed content.

Equations

This course must be viewed using the latest version of Firefox, Safari, Chrome, or Edge. Internet Explorer is not supported. If you use any other browser, or if you are not using the latest version of your browser, some pages containing equations may not render properly. In addition, javascript must be enabled for equations to render properly. If you have any issues with equations not rendering properly, please update your browser to the latest version or try using a different browser. If you need additional technical assistance at any point during the course, please contact the HelpDesk (for World Campus students) or the IT Service Desk (for students at all other campus locations).

Penn State E-mail Accounts

All official communications from Penn State are sent to students' Penn State e-mail accounts. Be sure to check your Penn State account regularly, or forward your Penn State e-mail to your preferred e-mail account, so you don't miss any important information.

Academic Integrity

This course follows the procedures for academic integrity of Penn State's College of Earth and Mineral Sciences. Penn State defines academic integrity as "the pursuit of scholarly activity in an open, honest and responsible manner." Academic integrity includes "a commitment not to engage in or tolerate acts of falsification, misrepresentation, or deception." In particular, the University defines plagiarism as "the fabrication of information and citations; submitting others' work from professional journals, books, articles, and papers; submission of other students' papers, lab results or project reports and representing the work as one's own." Penalties for violations of academic integrity may include course failure. To learn more, see Penn State's Academic Integrity Training for Students

Course Copyright

All course materials students receive or to which students have online access are protected by copyright laws. Students may use course materials and make copies for their own use as needed, but unauthorized distribution and/or uploading of materials without the instructor’s express permission is strictly prohibited. University Policy AD 40, the University Policy Recording of Classroom Activities and Note Taking Services addresses this issue. Students who engage in the unauthorized distribution of copyrighted materials may be held in violation of the University’s Code of Conduct, and/or liable under Federal and State laws.

For example, uploading completed labs, homework, or other assignments to any study site constitutes a violation of this policy.

Accommodations for Students with Disabilities

Penn State welcomes students with disabilities into the University's educational programs. Every Penn State campus has an office for students with disabilities. The Office for Student Disability Resources website provides contact information for Campus Disability Coordinators at every Penn State campus. For further information, please visit the Office for Student Disability Resources website.

In order to receive consideration for reasonable accommodations, you must contact the appropriate disability services office at the campus where you are officially enrolled. You will participate in an intake interview and provide documentation. See documentation guidelines at Applying for Services from Student Disability Resources. If the documentation supports your request for reasonable accommodations, your campus’s disability services office will provide you with an accommodation letter. Please share this letter with your instructors and discuss the accommodations with them as early in your courses as possible. You must follow this process for every semester that you request accommodations.

Change in Normal Campus Operations

In case of weather-related delays or other emergency campus disruptions or closures at the University, this online course will proceed as planned. Your instructor will inform you if there are any extenuating circumstances regarding content or activity due dates in the course due to these delays or closures. If you are affected by a weather-related emergency, please contact your instructor at the earliest possible time to make special arrangements.

Reporting Educational Equity Concerns

Penn State takes great pride in fostering a diverse and inclusive environment for students, faculty, and staff. Acts of intolerance, discrimination, or harassment due to age, ancestry, color, disability, gender, gender identity, national origin, race, religious belief, sexual orientation, or veteran status are not tolerated (Policy AD29 Statement on Intolerance) and can be reported through Educational Equity via Report Bias.

Counseling and Psychological Services

Many students at Penn State face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional well-being.  The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings.  These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity, and sexual orientation.  Services include the following:

Counseling and Psychological Services at University Park  (CAPS): 814-863-0395
Counseling Services at Commonwealth Campuses
Penn State Crisis Line (24 hours/7 days/week): 877-229-6400
Crisis Text Line (24 hours/7 days/week): Text LIONS to 741741

Military Personnel

Veterans and currently serving military personnel and/or spouses with unique circumstances (e.g., upcoming deployments, drill/duty requirements, disabilities, VA appointments, etc.) are welcome and encouraged to communicate these, in advance if possible, to the instructor in the case that special arrangements need to be made.

Connect Online with Caution

Penn State is committed to educational access for all. Our students come from all walks of life and have diverse life experiences. As with any other online community, the lack of physical interaction in an online classroom can create a false sense of anonymity and security. While one can make new friends online, digital relationships can also be misleading. Good judgment and decision-making are critical when choosing to disclose personal information to others whom you do not know.

Deferred Grades

If you are prevented from completing this course within the prescribed amount of time for reasons that are beyond your control, it is possible to have the grade deferred with the concurrence of the instructor, following Penn State Deferred Grade Policy 48-40. To seek a deferred grade, you must submit a written request (by e-mail or U.S. post) to the instructor describing the reason(s) for the request. Non-emergency permission for filing a deferred grade must be requested before the beginning of the final examination period.  It is up to the instructor to determine whether or not you will be permitted to receive a deferred grade. If permission is granted, you will work with the instructor to establish a communication plan and a clear schedule for completion within policy.  If, for any reason, the coursework for the deferred grade is not complete by the assigned time, a grade of "F" will be automatically entered on your transcript.

Attendance

This course will be conducted entirely online. There will be no set class meeting times, but you will be required to complete weekly assignments with specific due dates. Many of the assignments are open for multiple days, so it is your responsibility to complete the work early if you plan to travel or participate in national holidays, religious observances or University approved activities.

If you need to request an exception due to a personal or medical emergency, contact the instructor directly as soon as you are able. Such requests will be considered on a case-by-case basis.

Diversity, Inclusion, and Respect

Penn State is “committed to creating an educational environment which is free from intolerance directed toward individuals or groups and strives to create and maintain an environment that fosters respect for others” as stated in Policy AD29 Statement on Intolerance. All members of this class are expected to contribute to a respectful, welcoming, and inclusive environment and to interact with civility.

For additional information, see:

Mandated Reporting Statement

Penn State’s policies require me, as a faculty member, to share information about incidents of sex-based discrimination and harassment (discrimination, harassment, sexual harassment, sexual misconduct, dating violence, domestic violence, stalking, and retaliation) with Penn State’s Title IX coordinator or deputy coordinators, regardless of whether the incidents are stated to me in person or shared by students as part of their coursework. For more information regarding the University's policies and procedures for responding to reports of sexual or gender-based harassment or misconduct, please visit Penn State's Office of Sexual Misconduct Prevention & Response website.

Additionally, I am required to make a report on any reasonable suspicion of child abuse in accordance with the Pennsylvania Child Protective Services Law.


Disclaimer

Please note that the specifics of this Course Syllabus can be changed at any time, and you will be responsible for abiding by any such changes. All changes will be communicated to you via e-mail, course announcement and/or course discussion forum.