View on GitHub

gis5103_fall2018

Florida State University. GIS Programing. Fall 2018

GIS Programming | GIS 5103 | Principles of Programming for GIScientists


Instructor David C. Folch
Office Bellamy 607
Hours Tuesdays 11:00am-noon or by appointment
email dfolch@fsu.edu
Meeting Room Times
Bellamy 317 Tuesday 2:30-5:00pm

Description

As spatial and non-spatial datasets become larger and workflows more complex, alternatives to desktop GIS and analysis software become necessary. Skills in geocomputation, automation and reproducibility are quickly becoming part of the minimum skill set expected of geographic information science practitioners. This course is designed to address this rapidly evolving environment. Students will learn and apply programming and collaboration skills using the open-source Python programming language. Python is one of the most common languages used professionally in GIS and data science activities, and is simultaneously one of the most common languages used to introduce students to programming. In this course students will learn the fundamental skills of programming that are in high demand within academic and professional GIScience.

Course Learning Outcomes

Prerequisites

Course Structure

This course is organized to give students their first exposure to new material outside of the classroom, and then use class time to apply that knowledge to practical problems. At-home study guides are provided using Jupyter Notebooks. A Notebook is an interactive programming environment in which new concepts are presented, and related code can be run, modified and tested by the student in real time. These interactive sessions will be supplemented by audio/video content and readings. Students are expected to study the relevant material at home, and to communicate with the instructor and their peers regarding the parts they found most difficult. Discussions can be conducted via online chat or in class. Classroom time will be dedicated to working together to develop a deeper understanding of the material and its applications, as opposed to the traditional instructor “lecture.”

Grading

Grading in the course will be based on the following point system:

Component Count Points Total Points
Quizzes 7 100 700
Python package presentation 1 150 150
Project proposal 1 50 50
Project presentation 1 100 100
Final project 1 500 500
Grand Total     1500

Course final letter grades will be assigned as follows:

Letter Percentage Points
A 100-93 1500-1395
A- 92.9-90 1394-1350
B+ 89.9-87 1349-1305
B 86.9-83 1304-1245
B- 82.9-80 1244-1200
C+ 79.9-77 1199-1155
C 76.9-70 1154-1050
D 69.9-60 1049-900
E 59.9-0 899-0

Exercises will be given each week. These will be started (and often completed) in class. Students are strongly encouraged to complete these outside of class if not completed during class time.

Quizzes are primarily based on that week’s at-home study guide and the previous week’s exercise. All quizzes are cumulative. Eight (8) 5-10 minutes quizzes will be given at the start of class (after fielding any questions). The top 7 contribute to the final grade. All quizzes are “open book.”

Python package presentation is a formal in-class presentation on a Python package.

Project presentation is a formal in-class presentation on the results of the student’s project.

Final project deliverables are the code and written report on the student’s project. Must be submitted by Friday December 14 at 4:00pm.

There are no extra credit assignments to make up for poor performance or missed deadlines.

Compute Resources

The course focuses on Python for computational programming. All software needed for the course is free to use and works on Windows, Mac and Linux. Most software is open source. Installing these resources on personal laptops/desktops will be covered. Students are required to bring their own laptop to class.

The particular resources we will use include:

Schedule

The course schedule reflects the course organization (see above). Each class meeting (in brackets below) represents the culmination of the week’s new material (as opposed to the introduction of new material). Each week’s material will be accessible through GitHub.

The course is divided into three parts:

  1. Core programming concepts and their usage in Python (Aug. 28 - Oct. 9).
  2. Core Python packages for data science and spatial analysis (Oct. 10 - Nov. 13)
  3. Other Python packages and student projects (Nov. 14 - Dec. 14)

The schedule is subject to change.

Week At Home Readings In Class
[Aug 28]     Introduction to Python and course software
Aug 29 - [Sep 4] Install software, account setup folchcourses.github.io, Git Introduction, IPython Introduction, Ch 1 Exercise
Sep 5 - [Sep 11] Variables, statements and operators Ch 2, App A Quiz; Exercise
Sep 12 - [Sep 18] Sequences, dictionaries and strings Ch 8, Ch 10, Ch 11, Ch 12 Quiz; Exercise
Sep 19 - [Sep 25] Functions and flow controls Ch 3, Ch 5, Ch 7 Quiz; Exercise
Sep 26 - [Oct 2] Object orientation (class, composition and inheritance) Ch 16, Ch 17, Ch 18 Quiz; Exercise
Oct 3 - [Oct 9] Review core programming materials   Exercise
Oct 10 - [Oct 16] NumPy and SciPy NumPy Tutorial, SciPy Tutorial Quiz; Exercise
Oct 17 - [Oct 23] Files and Pandas Ch 15, Pandas Tutorial Quiz; Exercise
Oct 24 - [Oct 30] Matplotlib and Seaborn Matplotlib Tutorial Quiz; Exercise
Oct 31 - [Nov 6] Individual projects   Conference - no class
Nov 7 - [Nov 13] GeoPandas and PySAL GeoPandas User Guide, PySAL User Guide Quiz; Exercise
Nov 14 - [Nov 20] Individual projects   Thanksgiving week - no class
Nov 21 - [Nov 27] Individual projects   Package presentations
Nov 28 - [Dec 4] Individual projects   Package presentations
Dec 5 - [Dec 11] Individual projects   Project Presentations
Dec 14 Final project due (4:00pm)    

Policies

University Attendance Policy

Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.

Academic Honor Policy

The Florida State University Academic Honor Policy outlines the University’s expectations for the integrity of students’ academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to “…be honest and truthful and… [to] strive for personal and institutional integrity at Florida State University.” (Florida State University Academic Honor Policy, found at http://fda.fsu.edu/Academics/Academic-Honor-Policy.)

Americans with Disabilities Act

Students with disabilities needing academic accommodation should:

  1. register with and provide documentation to the Student Disability Resource Center; and
  2. bring a letter to the instructor indicating the need for accommodation and what type. This should be done during the first week of class.

This syllabus and other class materials are available in alternative format upon request.

For more information about services available to FSU students with disabilities, contact the:
Student Disability Resource Center
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
sdrc@admin.fsu.edu
http://www.disabilitycenter.fsu.edu/