Skip to content

Commit fed2d32

Browse files
Syllabus updates 2025 (#23)
* wip webmap part 1 * add more webmap * update web map * web mapping part 1 * update syllabus pt.1 * reorganize weeks * wip updates * update syllabus and reorg * more updates * more cleanup * update nb 1 * update reqs
1 parent e47f1b1 commit fed2d32

22 files changed

+278
-1719
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ _toc.yml
1212
_build
1313
/node_modules
1414
/.history
15+
/Tutorials/Data
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
# 00. A Note on syntax
2-
Throughout this site, you will see code snippets that are formatted in a specific way. This is done to make it easier to read and understand the code. Some examples include:
3-
- `# This is a comment`: This is a comment in Python. Comments are used to explain what the code does and are ignored by the Python interpreter. It is good practice to leave useful notes in the code to help others (and yourself) understand what the code does.
4-
- `[some-reference-here]`: Items in the code surrounded by brackets are cases where you should replace the contents, *including the brackets*, with another value. For example, if you see `[pick-a-name]`, you should replace it with a name of your choice, such as `gis` or `cdp`. The brackets are not part of the code and should not be included in your code.
1+
# 00. Getting Started
2+
> ### 00. A Note on syntax
3+
> Throughout this site, you will see code snippets that are formatted in a specific way. This is done to make it easier to read and understand the code. Some examples include:
4+
> - `# this is a comment in python`. Similarly, `// this is a comment in javascript`. Comments are used to explain what the code does and are ignored by the Python interpreter. It is good practice to leave useful notes in the code to help others (and yourself) understand what the code does.
5+
> - `[some-reference-here]`: Items in the code surrounded by brackets are cases where you should replace the contents, *including the brackets*, with another value. For example, if you see `[pick-a-name]`, you should replace it with a name of your choice, such as `gis` or `cdp`. The brackets are not part of the code and should not be included in your code.
56
67

78
# 01. Setting up your environment

Assignments/01_Loading_Visualizing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
Load and visualize a dataset of interest, either from [NYC Open Data](https://opendata.cityofnewyork.us/) or elsewhere. (If you already have an idea of what your final colloquium project topic will be, this would be a good opportunity to get a head start on that).
44

5-
Explore its metadata and attributes, and hone in on one or two attributes in particular of interest. Make map and non-map visualizations that explore these attributes. Provide in-line notes that describe your thought process in choosing which attributes to visualize, and what they mean.**** Provide explanation (numeric, graphical, textual) of what the attribute can and cannot tell us. Save the dataset out to the file format of your choice (but be able to explain why you chose that format).
5+
Explore its metadata and attributes, and hone in on one or two attributes in particular of interest. Make map and non-map visualizations that explore these attributes. Provide in-line notes that describe your thought process in choosing which attributes to visualize, and what they mean. Provide explanation (numeric, graphical, textual) of what the attribute can and cannot tell us. Save the dataset out to the file format of your choice (but be able to explain why you chose that format).

Assignments/03_Web_Mapping.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# 03. Web Mapping
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 03. Networks
1+
# 04. Networks
22

33
Define a network, and calculate the distance between different elements of it. Discuss the experiential differences between Euclidean and network distance for the objects in question. Bonus points (in the form of kudos) for quantitative exploration of the network as described in Xin et al. (2022).
44

Assignments/04_Web_Mapping.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ Repository for CDP Mapping Systems summer 2025 course
1111

1212
## Getting started
1313

14-
Visit the [01. Setting up your environment](Tutorials/00_Getting_Started.md) tutorial notebook to set up your programming environment and get started with the course.
14+
Visit the [01. Setting up your environment](Assignments/00_Getting_Started.md) tutorial notebook to set up your programming environment and get started with the course.

Syllabus/syllabus.md

Lines changed: 72 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,48 @@ Instructor: Mario Giampieri (mag2382@columbia.edu)
66

77
## Introduction
88

9-
_Mapping Systems_ will introduce CDP students to programming concepts and methods for spatial analysis, as well as their role in the production and interpretation of spatial data.
9+
_Mapping Systems_ introduces CDP students to programming concepts and methods for spatial analysis, using urban planning challenges as a basis for learning. The course will also explore the social, political, and ethical implications of mapping technologies, as well as our role as practitioners in the production and interpretation of spatial data.
1010

11-
The course will focus on building proficiency in Python-based workflows focused on finding, describing, and visualizing spatial data; manipulating and drawing meaning from data layers; understanding distance and spatial relatedness; and measuring change over time. While a primary goal of this course is to introduce students to practical tools and workflows and build fluency in their use, the course will also introduce students to some historical and conceptual context, as well as case studies.
11+
The course will focus on building proficiency in Python-based workflows focused on finding, describing, and visualizing spatial data; manipulating and drawing meaning from data layers; understanding distance and spatial relatedness; and measuring change over time. The course will also introduce web-based methods for visualizing and interacting with data. While a primary goal of this course is to introduce students to practical tools and workflows and build fluency in their use, we will maintain a critical perspective and also introduce students to some historical and conceptual context, as well as case studies.
1212

13-
The course will require students to complete exercises to gain proficiency in spatial analytic tools in service of being able to use said tools in their computational design practice.
13+
The course will require students to complete weekly exercises to gain proficiency in spatial analytic methods in service of being able to use said methods in their computational design practice. Students will be asked to further develop one exercise into a final project, described in more detail below.
14+
15+
## Final Project
16+
17+
The final project will expand upon one of the exercises and further explore the methods and tools used. This may mean conducting a more in-depth analysis of a dataset, applying the methods to a different (and/or multiple) dataset, or extending the functionality of web-based visualizations. You will be asked to diagram your project, write a short description of your goals, and reflect on how you intend to further explore these methods through the following semesters.
1418

1519
## Learning Objectives
1620

17-
At the most basic level, the goal of this class is to introduce students to mapping in Python and demonstrate how to explore, analyze, and visualize spatial data. By the end of the course, students should be able to:
21+
At the most basic level, the goal of this class is to introduce students to mapping in Python and Javascript and demonstrate how to explore, analyze, and visualize spatial data. By the end of the course, students should be able to:
1822

19-
- Load, explore, and visualize spatial data in Python
23+
- Load, explore, and visualize spatial data in Python and Javascript
2024
- Understand and apply basic geoprocessing techniques
2125
- Measure distance and spatial relatedness
22-
- Analyze change over time
26+
- Understand the role of web mapping and APIs in spatial data visualization
2327

2428
Furthermore, students should develop a deeper understanding of how spatial data is used in decision-making, and challenges associated with using data to inform arguments (agency in mapping; objective vs subjective / abstract vs experiential).
2529

30+
This is primarily a methods course, however students will be expected to complete weekly readings and come prepared to discuss them in class. There are several optional readings listed for each week; it is not expected that students will read all of these, but they are provided for those who wish to explore the topics in more depth.
31+
2632
## Course Organization / Communication
2733

28-
Class meets on Tuesdays and Thursday in 300 Buell South from 6-8pm. Weeks will generally be organized as follows:
29-
**Tuesday**: Lecture, reading discussion, review of technical concepts
30-
**Thursday**: Tutorials, desk crits for exercises and colloquium final project
34+
Class meets on Tuesdays and Thursdays in 200 Fayerweather from 6-8pm. Weeks will generally be organized as follows:
35+
- **Tuesday**: Lecture, reading discussion, review of technical concepts
36+
- **Thursday**: Technical tutorials and desk crits
3137

32-
Conversation topics that pertain to the entire class, such as meeting time/location or technical difficulties / troubleshooting can live in the course Discord channel. All other questions can be sent to me directly via email at mag2382@columbia.edu.
38+
Conversation topics that pertain to the entire class, such as meeting time/location or technical difficulties / troubleshooting should live in the course Discord channel. All other questions can be sent to me directly via email at mag2382@columbia.edu.
3339

34-
All slides and tutorials will be posted to the course's [Github repository](https://github.com/mapping-systems/cdp-mapping-systems). All exercises will be saved and managed via Github (details below).
40+
All reading materials and slides will be posted to Canvas, and tutorials will be posted to the course's [Github repository](https://github.com/mapping-systems/cdp-mapping-systems) (i.e. this website). All exercises will be saved and managed via Github (details below).
3541

3642
## Office Hours
3743

38-
Office hours are by appointment, and preferable on Tuesday or Thursdays before or after class. Email me to schedule a time to chat.
44+
Office hours are by appointment on Fridays, or before class on Tuesday or Thursday. Email me to schedule a time to chat.
3945

4046
## Schedule
4147

4248
### Week 01
4349

44-
Getting started- IDE, environment, loading and visualizing data
50+
Introductions + getting started: IDE and environment setup, loading and visualizing data
4551

4652
#### Class 01: Introductions
4753

@@ -51,35 +57,36 @@ Getting started- IDE, environment, loading and visualizing data
5157
- Projections
5258
- Vector data types
5359

54-
**Exercise** [Getting Started](/Assignment_Descriptions/00_Getting_Started.md) (to be completed by next class)
60+
**Exercise** [Getting Started](../Assignments/00_Getting_Started.md) (to be completed by next class)
5561

5662
**Readings**
5763

5864
- (optional) Edwards, P.N., 2010. Introduction, in: A Vast Machine: Computer Models, Climate Data, and the Politics of Global Warming. The MIT Press.
5965

6066
#### Class 02: Loading, exploring, visualizing data (Tutorial)
6167

62-
- Finding open data for NYC
63-
- Explore spatial and non-spatial attributes of tax lot dataset, MapPLUTO
64-
- Create static and interactive visualizations of dataset
68+
- [Tutorial](/Tutorials/01_vector_data_apis.ipynb) on loading, exploring, and visualizing data using `geopandas`, `pandas`, `matplotlib`, `lonboard`, and `folium`
69+
- Finding open data for New York City
70+
- Explore spatial and non-spatial attributes of tax lot dataset, `MapPLUTO`
71+
- Create static and interactive visualizations of the dataset
6572
- Saving data
6673

67-
**Exercise:** [01_Loading and visualizing data](/Assignment_Descriptions/01_Loading_Visualizing.md)
74+
**Exercise:** [01_Loading and visualizing data](../Assignments/01_Loading_Visualizing.md)
6875

6976
### Week 02
7077

71-
Geoprocessing / vector data analysis basics using `geopandas`, `pyogrio`, `pandas`, `matplotlib`, and `lonboard`
78+
Geoprocessing / vector data analysis basics using `geopandas` and `shapely`
7279

73-
#### Class 03: Why we map
80+
#### Class 03: Mapping as a critical and creative process
7481

7582
- Mapping as creative process, critical practice, and counter-narrative
7683
- Case study: Environmental Justice in New York City and New York State
7784

7885
**Readings**:
7986

80-
- Miller, H.J., 2004. Tobler’s First Law and Spatial Analysis. Annals of the Association of American Geographers 94, 284–289.
8187
- Iconoclasistas, 2016. Manual of Collective Mapping: Critical cartographic resources for territorial processes of collaborative creation.
8288
- Wilson, M.O., 2018. The Cartography of W.E.B. Dubois’ Color Line, in: Batlle-Baptiste, W., Rusert, B. (Eds.), WEB Du Bois’s Data Portraits: Visualizing Black America. Princeton Architectural Press.
89+
- (Optional) Miller, H.J., 2004. Tobler’s First Law and Spatial Analysis. Annals of the Association of American Geographers 94, 284–289.
8390
- (optional) Entrikin, J.N., 1991. The Betweenness of Place, in: Entrikin, J.N. (Ed.), The Betweenness of Place: Towards a Geography of Modernity. Macmillan Education UK, London, pp. 6–26. [https://doi.org/10.1007/978-1-349-21086-2_2](https://doi.org/10.1007/978-1-349-21086-2_2)
8491
- (optional) Maantay, J., Ziegler, J., 2006. Spatial Data and Basic Mapping Concepts, in: GIS for the Urban Environment.
8592
- (optional) Corner, J., 2011. The Agency of Mapping: Speculation, Critique and Invention, in: Dodge, M., Kitchin, R., Perkins, C. (Eds.), The Map Reader. Wiley, pp. 89–101. [https://doi.org/10.1002/9780470979587.ch12](https://doi.org/10.1002/9780470979587.ch12)
@@ -88,75 +95,79 @@ Geoprocessing / vector data analysis basics using `geopandas`, `pyogrio`, `panda
8895

8996
- Manipulate, reshape, and combine datasets together using spatial and non-spatial characteristics using `geopandas` and `shapely`
9097

91-
**Exercise:** [02_Geoprocessing](/Assignment_Descriptions/02_Geoprocessing.md)
98+
**Exercise:** [02_Geoprocessing](../Assignments/02_Geoprocessing.md)
9299

93100
### Week 03
94101

95-
Ways to think about and measure distance and spatial relatedness
96-
97-
#### Class 05: Distance, Adjacency, Networks
102+
Web mapping, interactive visualization, and crowd-sourced information
98103

99-
- Euclidean and network distance
100-
- Introduction to graph theory
101-
- Different kinds of adjacency
102-
- Case study: CitiBike usage before and during the COVID-19 pandemic
104+
#### Class 05: Web mapping part 1
103105

104-
**Readings**:
106+
- Introduction to web mapping
107+
- Web 2.0 and the rise of interactive mapping
108+
- Web map basic components
105109

106-
- Barabási, A.-L., 2016. Graph Theory, in: Network Science. Cambridge University Press, Cambridge, United Kingdom.
107-
- Xin, R., Ai, T., Ding, L., Zhu, R., Meng, L., 2022. Impact of the COVID-19 pandemic on urban human mobility - A multiscale geospatial network analysis using New York bike-sharing data. Cities 126, 103677. [https://doi.org/10.1016/j.cities.2022.103677](https://doi.org/10.1016/j.cities.2022.103677)
110+
**Readings**
108111

109-
#### Class 06: Measuring Distance (Tutorial)
112+
- NEOGEOGRAPHY AND THE PALIMPSESTS OF PLACE: WEB 2.0 AND THE CONSTRUCTION OF A VIRTUAL EARTH - GRAHAM - 2010 - Tijdschrift voor Economische en Sociale Geografie - Wiley Online Library [WWW Document], 2010. URL https://onlinelibrary-wiley-com.libproxy.mit.edu/doi/full/10.1111/j.1467-9663.2009.00563.x (accessed 6.15.25).
110113

111-
- Introduce `osmnx`, `networkx`, `libpysal`, `h3` to calculate distance from Avery to local points of interest
112-
- **Desk crits** on final colloquium projects
114+
#### Class 06: Web mapping (Tutorial part 1)
113115

114-
**Exercise:** [03_Networks](/Assignment_Descriptions/03_Networks.md)
116+
- Use `leaflet` to create interactive web maps
117+
- Load data via API
118+
- Launching a basic web map
119+
**Exercise:** [03_Web Mapping](../Assignments/03_Web_Mapping.md)
115120

116121
### Week 04
117-
Web mapping, interactive visualization, and crowd-sourced information
118-
#### Class 07: Web mapping
119-
- Introduction to web mapping
120-
- Web 2.0 and the rise of interactive mapping
122+
123+
APIs and website deployment
124+
125+
#### Class 07: Web mapping part 2
126+
127+
- Data production and governance
128+
- Elements of an API
121129
- Case study: OpenStreetMap and the Humanitarian OpenStreetMap Team
122-
- Web map basic components
130+
- **Desk Crits** + checking in
123131

124132
**Readings**
125-
- NEOGEOGRAPHY AND` THE PALIMPSESTS OF PLACE: WEB 2.0 AND THE CONSTRUCTION OF A VIRTUAL EARTH - GRAHAM - 2010 - Tijdschrift voor Economische en Sociale Geografie - Wiley Online Library [WWW Document], n.d. URL https://onlinelibrary-wiley-com.libproxy.mit.edu/doi/full/10.1111/j.1467-9663.2009.00563.x (accessed 6.15.25).
126-
- Haklay, M., Weber, P., 2008. OpenStreetMap: User-generated street maps. IEEE Pervasive Computing 7, 12–18. [https://doi.org/10.1109/MPRV.2008.80](https://doi.org/10.1109/MPRV.2008.80)
133+
127134
- Schröder-Bergen, S., Glasze, G., Michel, B., Dammann, F., 2022. De/colonizing OpenStreetMap? Local mappers, humanitarian and commercial actors and the changing modes of collaborative mapping. GeoJournal 87, 5051–5066. https://doi.org/10.1007/s10708-021-10547-7
135+
- (optional) Haklay, M., Weber, P., 2008. OpenStreetMap: User-generated street maps. IEEE Pervasive Computing 7, 12–18. [https://doi.org/10.1109/MPRV.2008.80](https://doi.org/10.1109/MPRV.2008.80)
128136

129-
#### Class 08: Web mapping (Tutorial)
130-
- Use `leafleft`, and `maplibre` to create interactive web maps
131-
- Loading data via API
132-
- Launching a basic web map
133-
**Exercise:** [04_Web Mapping](/Assignment_Descriptions/04_Web_Mapping.md)
137+
#### Class 08: Developing an API and site deployment (Tutorial)
138+
139+
- Use `supabase` to create a simple API
140+
- Deploy a simple website using `github pages`, `cloudflare`, or `render`
141+
- **Desk crits**
134142

135143
### Week 05
136144

137-
Raster analysis, STAC specification, change over time
145+
Conceiving of and measuring distance and spatial relatedness
138146

139-
#### Class 09: Measuring Change
147+
#### Class 09: Distance, Adjacency, Networks
140148

141-
- Introduction to raster data
142-
- Historical context for measuring change over time
143-
- Case study: National Land Cover Dataset
144-
- **Desk Crits** + checking in
149+
- Euclidean and network distance
150+
- Introduction to graph theory
151+
- Different kinds of adjacency
152+
- Case study: CitiBike usage before and during the COVID-19 pandemic
145153

146-
**Readings**
154+
**Readings**:
147155

148-
- Couclelis, H., 1992. People manipulate objects (but cultivate fields): Beyond the raster-vector debate in GIS, in: Frank, A.U., Campari, I., Formentini, U. (Eds.), Theories and Methods of Spatio-Temporal Reasoning in Geographic Space, Lecture Notes in Computer Science. Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 65–77. [https://doi.org/10.1007/3-540-55966-3_3](https://doi.org/10.1007/3-540-55966-3_3)
149-
- Homer, C., Dewitz, J., Jin, S., Xian, G., Costello, C., Danielson, P., Gass, L., Funk, M., Wickham, J., Stehman, S., Auch, R., Riitters, K., 2020. Conterminous United States land cover change patterns 2001–2016 from the 2016 National Land Cover Database. ISPRS Journal of Photogrammetry and Remote Sensing 162, 184–199. [https://doi.org/10.1016/j.isprsjprs.2020.02.019](https://doi.org/10.1016/j.isprsjprs.2020.02.019)
156+
- Barabási, A.-L., 2016. Graph Theory, in: Network Science. Cambridge University Press, Cambridge, United Kingdom. Available online [here](https://networksciencebook.com/chapter/2)
157+
- Xin, R., Ai, T., Ding, L., Zhu, R., Meng, L., 2022. Impact of the COVID-19 pandemic on urban human mobility - A multiscale geospatial network analysis using New York bike-sharing data. Cities 126, 103677. [https://doi.org/10.1016/j.cities.2022.103677](https://doi.org/10.1016/j.cities.2022.103677)
150158

151-
#### Class 10: Supervised classification using earth observation (EO) data (Tutorial)
159+
#### Class 10: Measuring Distance (Tutorial)
152160

153-
- Use `leafmap`, `rasterio`, `ipyleaflet` to find, download, classify, composite, and analyze raster data
154-
- **Desk crits**
161+
- Introduce `osmnx`, `networkx`, `libpysal`, `h3` to calculate distance from Fayerweather to local points of interest
162+
- **Desk crits** on final colloquium projects
163+
164+
**Exercise:** [04_Networks](../Assignments/04_Networks.md)
155165

156166
### Week 06
157167

158-
Preparing for final colloquium presentations + presentations on August 14th
168+
Preparing for final colloquium presentations + presentations on August 6th
159169

160170
#### Class 11: Desk crits / work session
161171

162172
- Work session for final projects
173+
- Wrapping up and looking forward

0 commit comments

Comments
 (0)