GIS 321 Principles of Programming for GIScience


Instructor and contact information:

Instructor: Sergio Rey

Office: Coor Hall 5612

Office hours: Tuesdays 2-3 or by appointment

Email: srey@asu.edu


Course prerequisites: CSE 110

Course description:

Contemporary research in analytical geography has placed an increasing demand on the computational skills of its practitioners. The advances in spatial data analysis and geographical modeling have also largely out-paced the capabilities of standard statistical software. At the same time, the multidisciplinary nature of the spatial sciences often translates into the need to deal with disparate data sources, formats and programming languages. As such, students undertaking research are often confronted with a daunting set of tasks that are seldom covered in an integrated fashion in course work. This course is designed to address this situation.

Course learning outcomes:

  • Introduce geography students to basic computational concepts using Python, an object-oriented scripting language, for data processing, analysis and application development in geographic research.

  • Familiarize students with the fundamental tools used in collaborative programming and research projects in an open source and cross-platform environment.

  • Provide students with skill sets that are in high demand within academic GIScience and commercial GIS development.


Grading policy:

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

Component Points
Exercises 360
Exam 1 120
Exam 2 220
Exam 3 300
Total 1000

Exams will be based on the readings, discussion forum posts, and exercises. All exams are cumulative. Late exams will not be accepted.

Exercises will be completed and submitted on Github.

Extra credit will be given for accepted pull requests that provide corrections or enhancements to course materials. 10 points for each accepted pull request.


Required and recommended readings:

W: Wentworth, P., et al. (2012) How to Think Like a Computer Scientist: Learning with Python 3. OpenBookProject How to Think Like a Computer Scientist. Denoted as W in schedule.

Chacon, S. and Straub, B. (2014) Pro Git. Git: Distributed Even if Your Workflow Isn't. Denoted as C in schedule.

Other readings to be assigned.


Schedule

Week Date Topics Readings Assigned Due
1 8.22 Course Introduction, Intro to github C1, C6 [E0 GitHub]((ipynb_md/10_git.html)
2 8.29 Software installation, shells, git local Install All, Install Windows, Install Mac, C2, C3 E1 Shells E0
9.05 Labor Day Holiday
3 9.12 git distributed, git collaboration C4, C5, C6 E2 git collaboration E1
4 9.19 Python Introduction, Test Driven Development WP, W1 E3 Testing E2
5 9.26 Continuous integration, Operators-operands Exam 1 E3
6 10.03 Sequences, Dictionaries, Sets E4 Exam 1
10.10 Fall Break
7 10.17 Functions, Modules E5 E4
8 10.24 Object orientation E6 E5
9 10.31 Composition Exam 2 E6
10 11.07 Functional programming E7 Exam 2
11 11.14 NumPy and SciPy E8 E7
12 11.21 Visualization E9 E8
13 11.28 Geospatial Python Exam 3 E9
12.05 Exam 3

Academic integrity

The ASU student academic integrity policy lists violations in detail. These violations fall into five broad areas that include but are not limited to: cheating on an academic evaluation or assignment, plagiarizing, academic deceit, such as fabricating data or information, aiding academic integrity policy violations and inappropriately collaborating, or falsifying academic records. For more information about the ASU student academic integrity policy, please use the following web link

http://provost.asu.edu/academicintegrity

Disability accommodations

Qualified students with disabilities who will require disability accommodations in this class are encouraged to make their requests to me at the beginning of the semester either during office hours or by appointment. Note: Prior to receiving disability accommodations, verification of eligibility from the Disability Resource Center (DRC) is required. Disability information is confidential.

Code of Conduct

As course instructor, I am dedicated to providing a harassment-free learning experience for all students, regardless of gender, sexual orientation, disability, physical appearance, body size, race, religion, or choice of operating system. All course participants are expected to show respect and courtesy to other students throughout the semester. As a learning community we do not tolerate harassment of participants in any form.

All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery are not appropriate in this course.

Be kind to others. Do not insult or put down other students. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for GIS321.

Students violating these rules may be asked to leave the course, and their violations will be reported to the ASU administration.

This code of conduct is an adaptation of the SciPy 2016 Code of Conduct.

** License **

All the software we will be using in this course falls under an open source license. Additionally, we build on the shoulders of many giants in this course and will be adapting materials from the Software Carpentry project that has generously provided instructural materials under a Creative Commons Attribution License.

All materials associated with this course are placed under the Creative Commons Attribution License.