Search type

School of Environment, Education and Development

Two Geography students on field trip
BA Geography with International Study

Study a course tailored to you at the university ranked fourth in the UK for Geography (Guardian University Guide).

BA Geography with International Study / Course details

Year of entry: 2018

Course unit details:
Understanding GIS

Unit code GEOG30552
Credit rating 20
Unit level Level 3
Teaching period(s) Semester 2
Offered by Geography
Available as a free choice unit? Yes


This course aims to simultaneously advance students’ knowledge of GIS, and teach them skills in Python programming. The main purpose of this course is to take students beyond the traditional ‘point and click’ approach to GIS, and teach them to more fully understand exactly what the GIS is doing ‘under the hood’. In doing so, all of the practical component of the course will be delivered using Python programming, and not ‘traditional’ desktop GIS software.


The motivation behind this is twofold: students with the ability to process data programmatically are less restricted in their research choices; and employers are telling us that they want graduates with advanced GIS knowledge and programming skills, going beyond simply being a ‘user’ of desktop packages such as ArcGIS or QGIS. Examples and practical sessions will be relevant to both Human and Physical Geographers.


It is important to note that there are no prerequisites to the course for experience in GIS, programming or level of computer literacy. The materials are all designed with complete beginners in mind, and the course staff will provide additional support as required. Though the learning curve may appear steep, the course is specifically designed to be achievable for all, irrespective of prior knowledge.


  • to offer students insight into how GIS software really works.
  • to teach students valuable skills in the Python programming language.
  • to enable students to automate data processing and analytical tasks.
  • to allow students to examine a number of common GIS operations and produce their own implementations of them.

Learning outcomes

By the end of the course unit, you should be able to:

  • understand how common GIS operations work, rather than simply being able to implement them in desktop software.
  • demonstrate competency in the handling of multiple types of spatial data.
  • demonstrate skills in the Python programing language, specifically in the context of geospatial applications.
  • understand the relationships between algorithms and data.
  • be able to produce map outputs programmatically.


1.      Understanding GIS

2.      Understanding GPS

3.      Understanding Topology

4.      Understanding Distance

5.      Understanding Generalisation

6.      Study Week

7.      Understanding Networks

8.      Understanding Surfaces

9.      Study Week

10.  Understanding Filtering

11.  Understanding Visibility

12.  Project Support

Teaching and learning methods

The course unit will be delivered through a combination of lectures and practical sessions. Each of the teaching weeks will involve both a one-hour lecture and a two-hour practical in a computer lab.

Each week, the lecture will introduce a theoretical grounding for the related practical, which will be followed up by a Python-based practical where that knowledge can be applied. The course will progressively build skills in Python-based GIS by visiting a new topic area each week: this will begin with a basic introduction to Python and GIS, and will end with the creation of software capable of performing complex GIS operations.

Sessions will draw upon a range of resources, including PowerPoint slides for lectures, web-based walkthrough guides for practical sessions, links to relevant web resources, core readings, and example code.

Transferable skills and personal qualities

During this course unit, you will be encouraged to develop the following abilities and skills:

  • a deeper understanding of how GIS works, beyond that which can be attained from desktop software alone.
  • the ability to automate repetitive tasks and produce custom GIS tools.
  • the ability to produce efficient and elegant Python software.
  • the ability to process a variety of geospatial data.
  • an ability to write reflexively about the learning process, about your own experiences and to link these experiences to wider issues and concerns. 

Assessment methods

The course will be assessed through a two coursework projects, which require students to write a Python program that solves a given GIS problem.


For Assessment 1, marks for the project will be divided into Python code (67%) and a reflective essay of up to 1,000 words (33%) describing the context of the project, the motivation for its production, and reflections upon the design and programming process.


For Assessment 2, marks for the project will be divided into Python code (67%) and a reflective essay of up to 1,000 words (33%) describing the context of the project, the motivation for its production, and reflections upon the design and programming process.

Feedback methods

Feedback will be provided in the following ways during this course unit:

·         During practicals the lecturer and demonstrators will provide verbal feedback.

·         Verbal feedback will be provided through Q&A, discussion and interactive activities within lectures, along with discussion of web resources.

·         Written feedback will be provided on the coursework projects.

·         Verbal feedback will be provided on any course unit issue through consultation hours and in seminars. 

Recommended reading

  • Carver, S. J., Cornelius, S. C., & Heywood, D. I. (2011). An Introduction to Geographical Information Systems (4th ed.). Prentice Hall.
  • Iliffe, J. and Lott, R. (2008) Datums and Map Projections for Remote Sensing, GIS and Surveying (2nd ed.). Taylor and Francis.

·         Lawhead, J. (2013). Learning Geospatial Analysis with Python. Pakt.

  • Longley, P. A., Goodchild, M. F., Maguire, D. J., & Rhind, D. W. (2015). Geographic information science and systems (4th ed.). John Wiley & Sons.

·         Python (2016). The Python Tutorial:

·         Westra, E. (2010). Python Geospatial Development. Pakt.



Key Journals

International Journal of Geographical Information Science

Transactions in GIS

Journal of Spatial Information Science

Study hours

Scheduled activity hours
Lectures 20
Seminars 10
Independent study hours
Independent study 170

Teaching staff

Staff member Role
Jonathan Huck Unit coordinator

Return to course details