If you are interested in a research internship around Network Science, check The projects I propose.

This is the page of the Complex Networks course at ENS de Lyon., in the Complex System option

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. Teachers for lectures are Rémy Cazabet and Pierre Borgnat. Practicals are independently teached by Juliana Du.

This class is thought to provide a broad overview of current topics in Network Science. It is grounded 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.

There are 24h of lectures and 8h of practicals. The lectures by me (Rémy Cazabet) are divided in 4 parts of 4h each, composed of 2 hours of lectures and 2 hours of experiments. The experiments are taught by Célestin Coquidé. They are conducted in python, using notebooks. The course is given in English, unless all students are French speakers.

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 !**

-->

-->

Day | Time | Room | Teacher | Topic | Resources |
---|---|---|---|---|---|

Thursday Sep. 12 | 8h00-10h00 |
F | Rémy Cazabet | Lecture: Introduction, Describing Networks, Centralities | CheatSheet_intro - CheatSheet_matrices - CheatSheet_centralities - Slides |

Thursday Sep.26 | 10h15-12h15 | F | Rémy Cazabet | Lecture: Random Graphs | |

Thursday Oct.03 | 10h15-12h15 | F | Célestin Coquidé | Experiments: Gephi, networkx intro | |

Thursday Oct. 17 | 10h15-12h15 | F | Célestin Coquidé | Experiments: Random Graphs | |

Thursday Oct. 24 | 10h15-12h15 | F | Rémy Cazabet | Lecture: Communities + ML classic | |

Thursday Nov. 7 | 10h15-12h15 | F | Pierre Borgnat |
Spreading processes ; Dynamic on networks | |

Thursday Nov. 14 | 10h15-12h15 | F | Célestin Coquidé | Experiments: Communities | |

Thursday Nov. 28 | 10h15-12h15 | F | Pierre Borgnat |
Graph Signal processing | |

Tuesday Dec. 3 |
10h15-12h15 | F | Pierre Borgnat |
Representation Learning for graphs ; embeddings | |

Thursday Dec. 5 | 10h15-12h15 | F | Rémy Cazabet | Lecture: Dynamic of Networks + dynamic communities | |

Thursday Dec. 12 | 10h15-12h15 | F | Célestin Coquidé | Experiments: Dynamic of networks | |

Tuesday Dec. 17 |
10h15-12h15 | F | Célestin Coquidé | Higher Order Networks |

Day | Time | Room | Teacher | Topic | Resources |
---|---|---|---|---|---|

Thursday Oct. 10 | 10h15-12h00 | F | Practicals + Project | Scientometrics practicals | |

Tuesday Nov. 28 | 8h00-10h00 | F | Project | ||

Tuesday Dec. 5 | 8h00-10h00 | F | Project | ||

Tuesday Dec. 12 | 8h00-10h00 | F | project |

Small network Game Of Thrones(.graphml)

Airports with location and country(.graphml)

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)

More generally, if you want to find data of interest, I provide here some tips to find them.

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).

It can be donwloaded there : Gephi.

**networkx**. Generic network analysis**notebook**. Jupyter notebook**cdlib**. Community detection**tnetwork**. Temporal networks**scikit-learn**. Machine learning/Data mining**seaborn**. ploting library

There will be two grades given in this class:

- A network analysis project. Send before December 17, 23h59. (40%) The description of the project is available there: Project
- A final Exam (January 6, 60%). All documents allowed (no computers). This exam covers classes by all teachers. You can find the exam of the previous year there. Note that the program was not exactly the same, but it gives an idea of the kind of questions you can have on my part.

You can work in groups of 2 or 3 students. You must clarify what each student has done (graes can be personnalized).

You can find some examples of previous years' projects there. (Please send your project as a notebook, I converted them here as PDF for convenience)