Course Title: Geospatial Programming

Part A: Course Overview

Course Title: Geospatial Programming

Credit Points: 12.00


Course Code




Learning Mode

Teaching Period(s)


City Campus


171H School of Science


Sem 2 2019

Course Coordinator: Yaguang Tao

Course Coordinator Phone: +61 3 9925

Course Coordinator Email:

Course Coordinator Location: 12.11.31-35

Course Coordinator Availability: appointment by email

Pre-requisite Courses and Assumed Knowledge and Capabilities

GEOM1033, SIS Fundamentals

GEOM1044, SIS Principles

Course Description

This course introduces you to fundamental programming concepts and to how scripting and programming can be used to automate tasks within a GIS environment as well as to extend GIS functionality. The course is designed for students with no prior background in programming, and the basic programming skills you learn in this course can also be applied to other parts of GIS workflows, such as data pre-processing, which is often required before bringing your data into a GIS environment.

Objectives/Learning Outcomes/Capability Development

This course contributes to the development of the following Program Learning Outcomes in BH117 Bachelor of Science (Geospatial Science) (Hons):

1.2 Demonstrate in-depth understanding of the spatial models and mathematical methods used in contemporary practice.

1.3 Understand specialist bodies of knowledge in surveying and geospatial science.

2.2 Proficiently perform computations in two and three dimensions.

3.1 Design and implement creative solutions to complex problems.

6.1 Be self-motivated and personally responsible for your actions and learning.

On completion of this course you should be able to:

  • Demonstrate an understanding of fundamental programming concepts, such as documentation, debugging, and error checking.
  • Investigate Python tool integration with open-source GIS software.
  • Solve GIS problems by writing well-documented Python code.
  • Demonstrate awareness and effective use of external resources such as and QGIS API documentation to solve GIS programming problems.
  • Successfully use version control management (e.g., Git) to manage code development.

Overview of Learning Activities

This course is run in blended mode, with an online component completed within Canvas before the one-week intensive face-to-face component and a project to complete after the face-to-face component.


Total study hours

Teacher Guided Hours: 36 per semester

Learner Directed Hours: 72 per semester

Overview of Learning Resources

As a student enrolled in this course at RMIT University you can access the extensive learning resources provided in the school and in the RMIT Library, such as books, journals and other course-related materials (electronic and paper-based). Our library offers extensive services and facilities, geared to assist you in completing your studies successfully. A library subject guide is available at:

The prescribed course text is Think Python 2nd Edition by Allen B. Downey. It is freely available under a Creative Commons license:

An additional recommended text is Learn Python the Hard Way, available from:

A collection of other helpful online resources is also provided in the course Canvas site.

The software used in this course is open source, freely available, and can be installed on your own computer at home. The relevant links for downloading the required software will be provided in Canvas.

Computer labs with the required software are also available for your study.

Overview of Assessment

This course takes a learning-by-doing approach. It is no good knowing the theory of programming if you can’t implement these ideas in practice!

The course is organised into five modules, two of which you need to complete online in advance of the intensive week, two of which you will complete during the intensive week, and a final module that you will complete after the intensive week.

The first four modules are each assessed through an online quiz and a practical exercise.

The final module is assessed through a small project in which you will design and implement Python code to automate GIS tasks and/or extend GIS functionality. The final module’s assessment items include an implementation plan and a final project report.

The quizzes and practical exercises for Modules 1 and 2 will be completed before the early assessment task deadline.

Assessment task group 1: Online quizzes for Modules 1-4

Weighting 20% (5% each quiz)

This assessment task supports CLOs 1 and 4


Assessment task group 2: Practical exercises for online modules

Weighting 30% (15% each exercise)

This assessment task supports CLOs 2, 3, 4 and 5


Assessment task group 3: Practical exercises for intensive week modules

Weighting 30% (15% each exercise)

This assessment task supports CLOs 2, 3, 4 and 5


Assessment Task 4 (module 5): Project implementation plan and project report

Weighting 20%

This assessment supports CLOs 2, 3, 4 and 5