Postgraduate Course: Object Orientated Software Engineering: Spatial Algorithms (PGGE11106)
Course Outline
School | School of Geosciences |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Availability | Available to all students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | The course assumes a prior working knowledge of the Python 3 programming language. It uses these to develop an understanding of computational algorithms used to manipulate and analyse spatial data and the concepts behind object oriented programming. A range of practical examples are used to identify and utilise generic algorithmic principles across a variety of different spatial data types and problems. Concepts of algorithm efficiency and resource usage and design of clear, maintainable software, are addressed. There is a strong practical emphasis to learning on the course and it is delivered through a sequence of five, four-hour workshops that allow you to iteratively learn about aspects of algorithm design and then to implement these in practice for yourself. PGGE 11234 Technological Infrastructures for GIS or other equivalent experience is a pre-requisite for this course.
After this course a student should be able to interpret any piece of python code they may need to use, through a mixture of direct experience and knowing how to find and interpret online resources. |
Course description |
Week 1: Introduction to python programming
Aspects
- Github version control and code repository
- Computer basics
- Revision of loops and file I/O
Algorithm
- Introduction to algorithm design: Finding minima and sorting
ASSESSMENT: None
Week 2: Objects and flexible programs
Aspects
- Using the command line to make programmable programs
- Objects and classes
Algorithm
- Binary search: Loop and recursion
ASSESSMENT: Biweekly journal
Week 3: Geospatial python
Aspects
- Geospatial packages: pyproj and gdal
- Importing your own packages
- Function fitting
Algorithm
- Douglas-Peucker line generalization
ASSESSMENT: None
Week 4: Geospatial data formats
Aspects
- HDF5 and geotiff packages
- Raster-vector intersections
Algorithm
- Batch processing: Large datasets
ASSESSMENT: Biweekly.
- Individual project introduced.
- Formative presentation on a repository and README
Week 5: Big data and batch processing
Aspects
- More geospatial packages: Geopandas
- RAM management
Algorithm
- Further batch processing
ASSESSMENT: Work on final project
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
It is RECOMMENDED that students have passed
Technological Infrastructures for GIS (PGGE11234)
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | A working knowledge of the basics of Python is essential, particularly data types (lists, dictionaries etc.) and flow control (if's, loops and functions). |
Information for Visiting Students
Pre-requisites | None |
High Demand Course? |
Yes |
Course Delivery Information
|
Academic year 2024/25, Available to all students (SV1)
|
Quota: 40 |
Course Start |
Block 4 (Sem 2) |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
98 )
|
Assessment (Further Info) |
Written Exam
0 %,
Coursework
100 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
100% coursework:
Learning journal to be submitted in weeks 2 and 4 (30% in total).
Final Project (70%) |
Feedback |
Formative feedback will be given for each week's repository.
|
No Exam Information |
Learning Outcomes
On completion of this course, the student will be able to:
- Understand object oriented programming.
- Identify how different spatial data models can be implemented in object-oriented designs.
- Have an understanding the principles of algorithm development and of generic concepts employed in algorithm design and be familiar with a range of algorithms used to manipulate and analyse spatial data.
- Be able to develop Python classes suited to the representation and analysis of spatial data.
- Be able to undertake spatial data Input / Output in standard formats.
|
Reading List
Note that all python documentation is online, and students are expected to become familiar with navigating this. Online documentation:
http://www.python.org/
https://numpy.org
https://www.h5py.org
https://www.osgeo.org
There are a number of very helpful forums online with answers for common questions. Writing the right term in to a search engine should take you directly to the answer on one of these:
https://stackoverflow.com
https://gis.stackexchange.com
For additional practice, online tutorials have kindly been made freely available from the link below using your university e-mail.
https://www.datacamp.com
Downey A, 2015. Think Python: How to Think Like a Computer Scientist. 2nd Edition, Version 2.2.23, Green Tea Press.
http://greenteapress.com/thinkpython2/thinkpython2.pdf
Martelli A, (2009), Python in a Nutshell, O¿Reiley¿Lutz M, Learning Python(2013),
O¿Reiley¿Sedgewick R, and Wayne K (2011):,Algorithms 4th edition¿Westra, E 2015
Beazley, D.M., 2009. Python essential reference. Addison-Wesley Professional.
|
Contacts
Course organiser | Dr Daniel Goldberg
Tel: (0131 6)50 2561
Email: Dan.Goldberg@ed.ac.uk |
Course secretary | Dr Beata Kohlbek
Tel:
Email: Beata.Kohlbek@ed.ac.uk |
|
|