Course details

Last updated: 2026-03-04 01:47:09

Course aims

Course aims are:

  • Understanding the concepts of networks and network analysis
  • Learning how to process and analyze spatial networks in Python, with emphasis on routing calculations on road networks

Course details

  • Course number: 128.1.0136
  • Time: Tuesday 16:10-19:00
  • Place: Building 72, room 249
  • Instructor: Michael Dorman ()
  • Grading:
  • Requirements:
    • Familiarity with Python, numpy, pandas, shapely, and geopandas
    • Self study
  • Getting help:

Lecture plan

The course lecture plan is given in Table 15.1.

Table 15.1: Lecture plan
Lesson Topic Date Projects
01 The Python language 2026-03-10
02 Data in Python 2026-03-17
03 Spatial data 2026-03-24
04 Networks with networkx 2026-04-14
05 Spatial networks 2026-04-28
06 Directions and weights 2026-05-05 Project 01
07 Routing 2026-05-12
08 Custom locations 2026-05-19
09 Accessibility 2026-05-26
10 OpenStreetMap and osmnx 2026-06-02
11 Multiple locations 2026-06-09 Project 02
12 Raster least cost paths 2026-06-16
13 Exam 2026-06-23

Projects

Submission dates

The project submission dates are given in Table 15.2.

Table 15.2: Project submission dates
Project Submission date
01 2026-??-??
02 2026-??-??

Instructions

  • Assignments should be prepared and submitted individually (not in pairs, etc.)
  • The “I thought the exercise was uploaded on moodle but turns out it wasn’t due to technical issue” excuse will not be accepted. If you aren’t sure that I got your exercise, please send me an e-mail saying “is my exercise correctly uploaded on moodle?” and I’ll be happy to check and get back to you.
  • The solution needs to be submitted on Moodle, as a Jupyter notebook (i.e., a single .ipynb file).
  • Use markdown cells or code comments to specify the following details at the top of the notebook:
    • Assignment number
    • Student name
    • Student ID
  • Use ## Introduction, ## Part 1, etc. in markdown cells to create headings referring to the required parts of the project
  • The notebook needs to run without errors, and produce (print) the required outputs, assuming the person who runs the notebook has all packages used in the book installed (Software), and has the net2.py file in their working directory
  • Avoid exporting any files in your code
  • All values that you are asked to calculate (e.g., number of components) need to be calculated using the appropriate function(s) (e.g., nx.number_connected_components) and the result need to be returned as the code output; in other words, you cannot embed the result directly in your code
  • You can use any function or method in the Python standard library (https://docs.python.org/3/library/) to solve the exercises, even if it is not in the material. However, you can only use third-party Python packages which are covered in the material (Software); you cannot use any other third-party package in your solution.