The module will first introduce basic theoretical concepts from graph theory (graph, node, edge, degree, weight, path, diameter, clustering coefficient, etc.). After introducing and discussing several theoretical graph models, students will also simulate and visualise these networks using the NetworkX package in Python. We will measure and discuss a number parameters as well as the degree distributions of these graphs and talk about their implications for possible dynamical processes taking place in networks.
For project work in small teams, students will download real-world network data (e.g. social network connections, protein-protein interaction network data, Internet structure data, etc.) from the Internet, and compare the real-world network properties with those of the theoretical models. Project work could include simple simulations of the impacts of attack, viral spreading and clustering in real networks. The course will end with the presentation of the projects and their discussion.
The course level and the project designs are suitable for students who intend to specialise in the numerical, natural and social sciences alike.