Mining knowledge from complex networks

Professors: Luca Vassio Martino Trevisan

Official description of the course: here

The target of the course is for all kind of engineers that might work with data that can be represented as a network. In this course, we will explore techniques for extracting useful information from complex networks, focusing on temporal and structural data. The students will learn how to collect data, create graphs and uncover their hidden structures. The shown case studies of real complex networks highlight important aspects of cybersecurity, privacy and social science. In detail, we will teach basics on how to properly handle such networks, how to run efficient and scalable algorithms for structure identification and finally we will present the techniques for visualizing the graphs. The course will cover the following topics: introduction to network science, probabilistic network models, link prediction, random walks over graphs, community detection, network structure identification and graph visualization techniques. The course will have hands-on parts. We will use the Python programming language running on a remote Jupyter Hub (, hence the students do not have to install anything and only need their computers with an internet connection. During each class, we will see examples with real networks and each student will execute some small programming assignment and data analysis and visualization. The final evaluation will be composed by the submission of the different assignments and by the optional discussion of a final project or deepening of one of the subject of the lectures. The discussion will be done in classroom together with the teachers and the other students. Projects could be done using data from the students’ personal research.


– Introduction to network science

– Network generative models

– Link prediction

– Random walks and network centralities

– Communities

– Network structure and visualization

– Research applications