GeoPython2019

Scientific Geo-Computing using Python. How we teach it at ITC
2019-06-25, 15:00–15:15, Room 2

At ITC, we teach Scientific Geo-Computing using Python to heterogeneous groups of international students. Our students come from all across the globe and they have different coding skills, ranging from coding novices to coding experts. This is how we teach it.


At ITC, we try to equip heterogeneous groups of international students with computing skills that help them solve scientific geospatial problems that existing GIS systems do not solve "out-of-the-box." This students come from all across the globe, bringing to class difference in culture and difference in problem-solving and coding skills. To acquire such skills, we teach students how to understand problems in the domain, where possible, regardless of application field, to conceptualize computing solutions, and document the chosen design and implementation paths, and finally "make things work” using Python and Python-related tools.

We start off beginning students with code reading skills, discuss the characteristics of algorithms, and strategies to algorithm design, good practice and conventions, for instance on documentation of code. In this, we follow a literature programming philosophy, where design and coding errors can still have positive learning effects. Next, we discuss what the Python language has to offer and how it is best used, in other words we dive into the devil details of writing proper Python scripts, and coding in Pythonic ways that bring code maintainability. In the second leg of the course, we move to geospatial problems and the handling of geospatial data, whether captured as vector features, as rasters or as other container types. Finally, we look at problems that require vector/raster integration, at declarative specifications of visuals (charts and maps) and how to generate these, and at problems in image classification and regression models over image data.

Towards the end of the taught module, we spend a day on showing students that Python is not the only language with which one can solve geospatial problems. We discuss selected alternatives, thematically organized, and we demonstrate when these alternatives can be the better technology to tackle certain problems.
We have, in the same group, students that never coded in their live, mixed with students that are already geoinformatics professionals and seek to increase their knowledge. This makes for a challenging didactic exercise that needs to be adapted every year, not only to cover new features and tools, but also to digest feedback from previous years students, and to adapt to specific needs that the current audience has expressed.
A large proportion of these students continues to code in the future and they develop coding solutions to solve some of their geo-problems, for instance in their M.Sc. thesis projects.