Foundations (Pt. 1)

Author

Jon Reades

Published

September 12, 2025

Overview

This week we will be quickly covering the fundamentals of Python programming, while developing a critical appreciation of data science as an ongoing ‘process’ that calls for iterative improvement and deeper reflection. We will be contextualising computers within a wider landscape of geographical/spatial research. And we will be (briefly) reviewing the basics of Python with a focus on simple data structures. We’re focussing here on how computers ‘think’ and how that differs from what you might be expecting as an intelligen human being!

Learning Objectives
  1. A review of basic Python syntax and operators.
  2. An understanding of how none of this all that new.

So we will be contextualising all of this within the longer history of the study of geography (or planning!) through computation. I hope to convince you that many of the problems we face today are not new and why that should encourage you to continue to do the readings!

Readings

Come to class having read:

Citation Article
Burton (1963) URL
Donoho (2017) URL
Franklin (2024) URL

Study Guide

The following questions will help guide your reading and prepare you for class discussions:

  1. Thinking about Burton (1963), evaluate the impact of the “quantitative revolution” on the field of Geography.
  • How do Burton’s views on the quantitative revolution differ from the perspectives presented in the more recent sources?
  • How has the relationship between geography and computing evolved over time?
  • Was the quantitative revolution a singular event or part of a more continuous process?
  1. Thinking about Donoho (2017)’s definition of data science…
  • What is the “Big Data” meme and why does Donoho find it misleading?
  • Explain Breiman’s concept of the “two cultures” in data analysis.
  • What does Tukey argue are the three essential constituents of a science, and how does he apply them to the field of data analysis?
  • What are CTFs and how do they relate to the “predictive culture” of data analysis?
  • What are the six divisions of the Greater Data Science (GDS) framework?
  1. According to Franklin (2024)
  • What are three recent developments that distinguish the current landscape of open software in quantitative methods from previous eras?
  • What are some of the emerging subfields within quantitative methods, and what common goal do they share?
  • The author argues that the rebranding of quantitative methods as “data science” or “analytics” can be beneficial in certain contexts. Explain these benefits.
  • What concerns are raised about the fragmentation of the quantitative methods community identity?
Connections

Franklin (2024) offers another perspective on ‘the discipline’ of quantitative human geography and its heterogeneity, while Donoho (2017) will give you context on how data science might differ from what’s covered in Quantitative Methods. You might also find Unwin (1980) useful for understanding why the practicals are set up the way they are and why we don’t post ‘answers’ until a few days after the last practical group has completed its session. You should read Burton (1963) while reflecting on Arribas-Bel and Reades (2018) with a view to seeing that ‘there is nothing new under the sun’: we tend to think that the challenges we face now in terms of data volumes and complexity are novel, but they are not. Indeed, here’s John Graham-Cumming keynoting a 2012 conference talking about the Lyons Tea Company and how its programmers invented Dykstra’s shortest path algorithm more than 20 years before Dykstra did!

Pre-Recorded Lectures

This week is very busy because we need to cover off the basics for those of you who were unable to engage with Code Camp, while recapping only the crucial bits for those of you who were able to do so.

Come to class having watched:

Session Video Presentation
Python: the Basics (Part 1) Video Slides
Python: the Basics (Part 2) Video Slides
Lists Video Slides
Iteration Video Slides
The Command Line Video Slides

In-Person Lectures

In this week’s session we will look at the practices of data scientists in the wider context of the arrival of LLMs.

Session Video Presentation
What We Do In Class Slides
On Writing In Class Slides
On Coding In Class Slides
CLI+Podman+PostGIS In Class Demo & Discussion

Practical

This week’s practical requires you to have completed installation of the programming environment. Make sure you have completed setup of the environment.

We will take you through the fundamentals of Python, including the use of simple1 Boolean logic and lists. However, if you have not yet completed Code Camp (or were not aware of it!), then you will benefit enormously from tackling the following sessions:

  1. The Basics
  2. Boolean Logic
  3. Lists

To run the code for these sessions you can:

  1. Follow the instructions for running these in Google’s Collaboratory; or
  2. Create a new Notebook in Docker (File > New > Notebook) and copy+paste the code into new Code cells.
Connections

The practical focusses on:

  • Ensuring that you are set up with Git/GitHub
  • Reviewing Python basics
  • Reviewing Python lists and logic

To access the practical:

  1. Preview
  2. Download

References

Arribas-Bel, D., and J. Reades. 2018. “Geography and Computers: Past, Present, and Future.” Geography Compass 12 (e12403). https://doi.org/10.1111/gec3.12403.
Burton, I. 1963. “The Quantitative Revolution and Theoretical Geography.” The Canadian Geographer/Le Géographe Canadien 7 (4):151–62. https://doi.org/10.1111/j.1541-0064.1963.tb00796.x.
Donoho, D. 2017. “50 Years of Data Science.” Journal of Computational and Graphical Statistics 26 (4):745–66. https://doi.org/10.1007/978-3-642-23430-9_71.
Franklin, Rachel. 2024. Quantitative methods III: Strength in numbers? Progress in Human Geography 48 (2). SAGE Publications Sage UK: London, England:236–44. https://doi.org/10.1177/03091325231210512.
Unwin, David. 1980. “Make Your Practicals Open-Ended.” Journal of Geography in Higher Education 4 (2). Taylor & Francis:39–42. https://doi.org/10.1080/03098268008708772.

Footnotes

  1. Note: simple does not mean ‘easy’! Just because we say something is ‘basic’ or ‘simple’ does not mean that we think it is straightforward for someone learning to code for the first time!↩︎