Foundations (Pt. 1)
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!
- A review of basic Python syntax and operators.
- 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:
- 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?
- 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?
- 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?
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:
To run the code for these sessions you can:
- Follow the instructions for running these in Google’s Collaboratory; or
- Create a new Notebook in Docker (
File
>New
>Notebook
) and copy+paste the code into newCode
cells.
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:
References
Footnotes
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!↩︎