If you are interested in a research internship around Network Science, check The projects I propose. Check also internships proposed by colleagues on Graph Neural Networks here and there.
New December 9: I add the possibility to postpone the submission of your project to January 6. Read details at the bottom of the page

Complex Networks - Network Science -2022/2023

Introduction
This is the page of the Complex Networks course at ENS de Lyon.
This class can be followed by students from different specializations:
The class covers: 1)Fundamentals of Network Science, e.g., Classic random models, centralities, small-world phenomenon, etc. 2)Focus classes on advances topics, e.g., dynamic networks, graph algorithmic, community detection 3)A focus on Graph Neural Networks (Computer Science students only, after January 6)
Objectives
This class is thought to provide a broad overview of current topics in Network Science. It is grouded in research. The objective of the course is to lead the students to a point where they are able to gain a general understanding of most articles currently published in the field.

Overview of the course
The course organisation depends on your specialization: 24h are common to all students (CS+info), 8 hours in January are mandatory only for info students, while 8 hours of practicals are mandatory only for CS students. All students are welcome to attend all classes if they wish.


Program, classes and content

Below is an overview of the courses and practicals. As the classes are done, I'll add my presentation slides, cheatsheets, some notebooks, etc.
This organization can be subject to changes !

I created a Discord channel that you can join if you want to ask questions about the class, projects, etc. link: https://discord.gg/GWrS2KpTJq

Day Time Room Group Topic Resources
Tuesday Nov.15 8h00-10h00 F All Lecture: Introduction, Describing Networks, Centralities CheatSheet_intro - CheatSheet_matrices - CheatSheet_centralities - Slides
Tuesday Nov.22 8h00-10h00 F All Experiments: Gephi, networkx intro Practicing: Gephi - Practicing: networkx
Project description - Past year projects example - Centrality guess
Tuesday Nov.22 13h30-15h30 F CompSys TP+Project Introduction to Pandas
Python datastructures
Practical: Scientometrics
Thursday Nov. 24 10h15-12h15 F All Lecture: Random Graphs Lecture - CheatSheet_RandomGraphs - CheatSheet_ScaleFree - CheatSheet_Spatial
Tuesday Nov. 29 08h00-10h00F All Experiments: Random GraphsExperiments: Random Graphs
Thursday Dec. 1 8h00-10h00F CompSys Project
Thursday Dec. 1 10h15-12h15F All Lecture: Spreading processes + Experiments: Spreading processes Experiments: Diffusion
Lecture
CheatSheet Diffusion
Tuesday Dec. 6 08h00-10h00F All Lecture: Communities+ ML classic Lecture
CheatSheet Communities
CheatSheet Machine Learning
Thursday Dec. 8 8h00-10h00F CompSys Project
Thursday Dec. 8 10:15-12:15F All Experiments: Communities Experiments: Communities
Modularity correction
Tuesday Dec. 13 08h00-10h00F All Lecture: Dynamic Networks + dynamic communities Lecture
CheatSheet Dynamic
Thursday Dec. 15 8h00-10h00F CompSys Project
Thursday Dec. 15 10h15-12h15F All A. Guille: Representation Learning 1
Tuesday Jan. 3 8h00-10h00F All Experiments: Dynamic Networks Experiments: Dynamic
Thursday Jan. 5 10h15-12h15F All A. Guille: Representation Learning 2
Friday Jan. 6 13h30-15h30L CompSys Final Exam Complex Systems
Tuesday Jan. 11 8h00-10h00B1 CompSci A. Guille: GNN1
Thursday Jan. 13 10h15-12h15B1 CompSci A. Guille: GNN2
Tuesday Jan. 17 8h00-10h00B1 CompSci A. Guille: GNN3
Thursday Jan. 19 10h15-12h15B1 CompSci A. Guille: GNN4
Thursday Jan. 26 10h15-12h15B1 CompSci Final Exam Computer Science


Networks


Small networks
Small network Game Of Thrones(.graphml)
Airports with location and country(.graphml)

Dataset collections
There are many network dataset repositories available on the web, here is for instance a collection of collection of networks: network-datasets
A recent addition to this list is Netzschleuder repository, which has the advantage of allowing to load a graph directly from its name. Here is a minimal working example, to load the openflights dataset:

from io import BytesIO
from zipfile import ZipFile
from urllib.request import urlopen
address="https://networks.skewed.de/net/openflights/files/openflights.csv.zip"
resp=urlopen(address)
zipfile = ZipFile(BytesIO(resp.read()))
strf=zipfile.read("edges.csv").decode().split("\n")
g= nx.parse_edgelist(strf,delimiter=",",data=False)

Tools

For tutorials and the experimental part of lectures, you need to use some softwares, detailed below.

Gephi

Gephi is a software for basic graph manipulation and visualization. Although you can't do much in term of graph analysis, it is really convenient to explore and visualize graphs of small to medium size ( < 1000 nodes).
It can be donwloaded there : Gephi.

Python

Most of the experiments are done in python. If you're not familiar with this language, there are numerous tutorials on the web. A good one for instance is from w3schools. You don't need to install anything, since you can do all the experiments using an online notebook such as Google colab. If you prefer to use a local installation on your computer, here is a list of packages we will use. Note that some of them are only available with pip, and not anaconda. If you're using anaconda, you can neverthless use them, using the pip command (pip install package_name).
  • networkx. Generic network analysis
  • notebook. Jupyter notebook
  • cdlib. Community detection
  • tnetwork. Temporal networks
  • scikit-learn. Machine learning/Data mining
  • seaborn. ploting library

Exams

At the demand of some students, I add the possibility for all students to postpone the date of delivery of the project:
  • If you send the project before December 18, I'll give you the grades before January 2. I'll of course take into account the short time you had to prepare the project
  • Else, you can send your project up to January 6. I will not penalize in the grades, although I will be a little less lenient on the report's format (It should not look like a draft made in a hurry).
There will be two grades given in this class, with coefficients and exams depending on your master:

Complex System Students

  • A network analysis project. Send before December 18, 23h59. (60%)
  • A final Exam (January 6, 40%). All documents allowed (no computers)Example of a previous year

Computer Science Students

  • A short project, application of experiments. Send before December 18, 23h59. (30%) 50%
  • A final Exam (End of January, (70%) 50%)

Previous Versions

The page of last year's course can be found there: 2021/2022.