BSc Geography with International Study / Course details

Year of entry: 2023

Course unit details:
Understanding GIS

Course unit fact file
Unit code GEOG30551
Credit rating 20
Unit level Level 3
Teaching period(s) Semester 1
Offered by
Available as a free choice unit? Yes


As GIS technologies become increasingly available to the general public, the users of those technologies are becoming increasingly detached from the ‘geographical information science’ behind the software. Understanding GIS seeks to remedy this by using Python programming to explore how common GIS operations actually work, and teach students to be able to understand spatial problems in order that they can develop their own solutions.

The course will teach students the main paradigms and algorithms that underpin both GIS, and the Python programming language. In doing so, it will removing any reliance upon ‘black box’ software such as ArcGIS, whilst affording students insights into an ‘expert’ level of understanding of GIS, including the crucial ‘how it works’ that is missing from most desktop GIS software.


  • 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.
  • allow students to develop problem-solving skills, by writing software to solve a variety of geographical problems

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.

Teaching and learning methods

The course unit will be delivered through ten hybrid lecture and practical sessions. Each of the teaching weeks will involve approximately one-hour of lecture material (L) and two-hours of  practical material (P), all delivered in a computer lab (normally in the format 30L-30P-30L-90P minutes).

Each week, the lecture will introduce a theoretical grounding for the related practical, as well as fundamental principles of computing and software development. This will be integrated with a practical in which that knowledge can be applied through writing software in the Python Programming language. 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 at the start of the Semester, 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, an online forum and example code.

The course necessarily has a steep learning curve, and students will be expected to practise this programming outside of the classroom in order to fully understand the material.

Knowledge and understanding

  • Understand how many common GIS operations actually work, rather than simply being able to implement them in desktop software.

Intellectual skills

  • Gain a deeper understanding of the geographical information science paradigms that underpin geographical information systems.

Practical skills

  • Demonstrate competency in the handling of multiple types of spatial data.
  • Undertake spatial analysis and map production programmatically
  • Automate repetitive or time-consuming tasks to take advantage of computing power to work more effectively and efficiently

Transferable skills and personal qualities

  • Demonstrate skills in writing and debugging software in the Python programming language, specifically in the context of geospatial applications.
  • Develop problem skills, enabling students to break down complex problems into achievable solutions

Assessment methods

Assessment task


Weighting within unit (if relevant)


Assessment 1 comprises a simple spatial data task, which consolidates the practical and theoretical knowledge that you have learned in the first weeks of the course.

You must submit the working code for the algorithm as well as a justifying your approach and explaining the results.

Website + 1000 word report


Assessment 2 comprises converting a pseudocode algorithm from the literature into a script in order to undertake data analysis for a client.

You must submit the working code for the algorithm as well as a report for your client, describing your approach and the results.

Website + 1000 word report



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

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

Python Software Foundation (2020)

W3Schools (2020)

Westra, E. (2010). Python Geospatial Development. Pakt, Birmingham, UK.

Xiao, N (2015) GIS Algorithms. Sage, New York.

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