BSc Geography and Geology / Course details
Year of entry: 2018
Course unit details:
|Unit level||Level 3|
|Teaching period(s)||Semester 2|
|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.
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.
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 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.
- 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: https://docs.python.org/2.7/tutorial/
· Westra, E. (2010). Python Geospatial Development. Pakt.
International Journal of Geographical Information Science
Transactions in GIS
Journal of Spatial Information Science
|Scheduled activity hours|
|Independent study hours|
|Jonathan Huck||Unit coordinator|