Course name: Principles of Programming for GIScience
Course number: GIS 321
Course prerequisites: CSE 110
--
Instructor and contact information:
Instructor: Jay Laura
Office hours: Via email or scheduled via Google Hangout or Phone
Email: [email protected]
--
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 |
---|---|
12 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 using Github and Github Classroom, and grades recorded in BlackBoard.
There are no extra credit assignments to make up for poor performance on exams, exercises, or missed in-class activities.
--
Required and recommended readings:
Wentworth, P., et al. (2012) How to Think Like a Computer Scientist: Learning with Python 3. OpenBookProject How to Think Like a Computer Scientist
Percival, H. (2014) Test-Driven Development with Python. O'Reilly, Sebastopol. Test-Driven Development with Python
Chacon, S. and Straub, B. (2014) Pro Git. Git: Distributed Even if Your Workflow Isn't
Other readings to be assigned.
--
Weekly activities
All readings are from the How to Think Like a Computer Scientist text unless noted, e.g. with a Git Ch1
descriptor.
**Week | Topics | Readings | Assigned | Due |
---|---|---|---|---|
1 | Course Introduction, Software Installation, Intro to Git | Configuration, Git Ch1, Ch2.1, Ch6.1 | E0 Configuration | |
2 | Python Introduction, Test Driven Development, Koans | Scientific Python, Ch 2 | E1 Basic Python Types | E0 Configuration |
3 | Python Interpreters, Editors, Local Testing, Strings, None | Ch 1, Ch 8, Ap. A | E2 Strings & None | E1 Basic Python Types |
4 | Continious Integration Environments, Operators/operands | TBA | E3 Point Statistics | E2 Strings & None |
5 | Sequences, Dictionaries | Ch7, Ch9, Ch11, Ch20 | Exam 1 | E3 Point Statistics |
6 | Conditional Execution, Files | Ch5, Ch13 | E4 Iterables & Conditions | Exam 1 |
7 | Functions, Methods, Modules | Ch4, Ch6, Ch12, Ch15 | E5 Point Pattern Module I | E4 Iterables & Conditions |
8 | OOP, Inheritance | Ch16, Ch21, Ch23 | E6 | E5 Point Pattern Module II |
9 | Composition | Ch22 | E6 Functional Point Patterns | E5 Point Pattern Module II |
10 | Functional Programming, List Comprehensions | TBA | Exam 2 | E5 Point Pattern Module II |
11 | Geospatial & Numerical Libraries | TBA | E7 Numerical Programming | Exam 2 |
12 | Qt Installation & Basic GUI Development | Ch10, TBA | E8 PyQt | E7 Numerical Programming |
13 | Event Driven Programming | TBA | E9 QGIS Plugin I | E8 PyQt |
14 | Event Handling & Widgets | TBA | E10 QGIS Plugin II | E9 QGIS Plugin I |
15 | MVC | TBA | E11 Integration | E10 QGIS Plugin II |
16 | Final Exam | E11 Integration |
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.