Network Analysis using Python

This training session will introduce the basics of network theory and working with graphs using python and the NetworkX package. This will be a hands on tutorial and will require writing a lot of code snippets. The participants should be comfortable with basic python (loops, dictionaries, lists) and some(minimal) experience with working inside a jupyter notebook.

Broadly the tutorial is divided into four parts: Part A (20 mins) - Basics of graph theory and various examples of networks in real life. - Introduction to the NetworkX API and various data structures

Part B (30 mins) - Work with small synthetic networks (generated using random graph generators) to understand the structure of the network. - Analyse the network and study various properties of the network like centrality, connectivity, shortest paths, cliques.

Part C (30 mins) - We'll use the various techniques we have learnt so far and model a network out of real world data like co-authorship network( http://www-personal.umich.edu/~mejn/netdata/cond-mat-2005.zip) and study the structure and properties of this network.

Part D (10 mins) - We'll work on some interesting problems like temporal networks and visualisation of networks. - We'll model the US Airport Network with respect to time and will try to make sense out of it.

By the end of the tutorial everyone should be comfortable with hacking on the NetworkX API, modelling data as networks and basic analysis on networks using python.