BA Geography with International Study / Course details

Year of entry: 2024

Course unit details:
Understanding GIS

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


As GIS technologies become increasingly common across all sectors of industry and research, the users of those technologies are becoming increasingly detached from the science behind the software. Understanding GIS seeks to remedy this by using Python programming to explore GIS actually work, providing students with an in-depth “behind the scenes” understanding of applied geographical information science.

Students will become familiar with fundamental GIS (coordinate reference systems, topological operators, spatial indexes, generalisation); data types (vector, raster, network); and advances in the field (genetic algorithms, agent based modelling); whilst engaging with a range of real-world geographical problems Throughout the course, we focus on understanding “how it works”, rather than simply “how to do it”; providing students with a deeper understanding than can be achieved in traditional GIS courses.


  • 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 programming language, specifically in the context of GIS 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: beginning with Fundamentals of GIS (gaining key knowledge underpinning GIS), before moving on to Applications of GIS (examining common algorithms and applications in GIS) and finally Advances in GIS (learning about how innovative and emergent technologies continue to develop GIS).

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

  • Articles Referenced in the Practicals
  •  Battersby, S. E., Finn, M. P., Usery, E. L., & Yamamoto, K. H. (2014). Implications of web Mercator and its use in online mapping. Cartographica: The International Journal for Geographic Information and Geovisualization, 49(2), 85-101.
  • Bresenham, J. E. (1965). Algorithm for computer control of a digital plotter. IBM Systems journal, 4(1), 25-30.
  • Canters, F., Deknopper, R., & De Genst, W. (2005). A new approach for designing orthophanic world maps. In Proceedings of the 22nd International Cartographic Conference (pp. 9-16).
  • Gosling P., C. & Symeonakis E. (2020). Automated map projection selection for GIS, Cartography and Geographic Information Science, 47:3, 261-276. • Guttman, A. (1984). R-trees: A dynamic index structure for spatial searching. In Proceedings of the 1984 ACM SIGMOD international conference on Management of data (pp. 47-57).
  • Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968) A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100-107.
  • Huck, J., Whyatt, D., & Coulton, P. (2015). Visualizing patterns in spatially ambiguous point data. Journal of Spatial Information Science, 2015(10), 47-66.
  • Kaučič, B., & Zalik, B. (2002, April). Comparison of viewshed algorithms on regular spaced points. In Proceedings of the 18th spring conference on Computer graphics (pp. 177-183).
  • Mandelbrot, B. (1967). How long is the coast of Britain? Statistical self-similarity and fractional dimension. science, 156(3775), 636-638. • Schelling, T. C. (1969). Models of segregation. The American Economic Review, 59(2), 488-493.
  • Schelling, T. C. (1971). Dynamic models of segregation. Journal of mathematical sociology, 1(2), 143-186.
  • Usery, L. E., & Seong, J. C. (2001). All equal-area map projections are created equal, but some are more equal than others. Cartography and Geographic Information Science, 28(3), 183-194.
  • Visvalingam M. & Whyatt J., D. (1993) Line generalisation by repeated elimination of points, The Cartographic Journal, 30:1, 46-51. Other Relevant Material • Canters, F. (2002). Small Scale Map Projection Design. CRC Press, Boca Raton.
  • Crooks, A. et al. (2019) Agent Based Modelling & Geographical Information Systems: A Practical Primer. Sage, London.
  • Iliffe, J. & Lott, R. (2008). Datums and Map Projections for Remote Sensing, GIS and Surveying (2nd ed.). CRC Press, Boca Raton. • Lawhead, J. (2013). Learning Geospatial Analysis with Python. Pakt, Birmingham, UK.
  • Python Software Foundation (2022). Documentation for the Python Programming Language.
  • Van Sickle, J. (2010) Basic GIS Coordinates (2nd ed.). CRC Press, Boca Raton.
  • Veness, C. (2022) Calculate distance, bearing and more between Latitude/Longitude points.
  • Veness, C. (2022) Vincenty solutions of geodesics on the ellipsoid.
  • W3Schools (2022). Python Tutorial.
  • Westra, E. (2010). Python Geospatial Development. Pakt, Birmingham, UK.
  • Worboys, M. & Duckham, M. (2004) GIS, a Computing Perspective (2nd ed.). CRC Press, Boca Raton.
  • 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