MSc Geographical Information Science

Year of entry: 2024

Course unit details:
Understanding GIS

Course unit fact file
Unit code GEOG71551
Credit rating 15
Unit level FHEQ level 7 – master's degree or fourth year of an integrated master's degree
Teaching period(s) Semester 1
Available as a free choice unit? No


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.

No prior experience in Python is required for this course.


  • Offer students insight into how GIS software really works.
  • Teach students skills in the Python programming language.
  • Enable students to automate data processing and analytical tasks.
  • Allow students to develop problem-solving skills.

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 practice 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

Employability skills

Problem solving
Python Programming

Assessment methods

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. (40%)

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

Feedback methods

Assessment feedback is provided via Blackboard.

Additional formative feedback available in class and via a programming forum.

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
Practical classes & workshops 30
Independent study hours
Independent study 120

Teaching staff

Staff member Role
Jonathan Huck Unit coordinator

Return to course details