This course deals with computer science (CS) aspects of social network analysis (SNA), and is open to all students in the master computer science programme at Leiden University. If you want to participate in the 2023 edition and are in a different programme, then you should contact the lecturer in advance.
Update Sep 18: Extra reading material to help freshen up on skills and knowledge required for this course, has been made available at the bottom of the website.
Lectures: Fridays from 11:00 to 12:45 in Gorlaeus room C1
Lab sessions: Fridays from 9:00 to 10:45 in Snellius rooms 302/304, 306/308, etc.
Prerequisites: a CS bachelor with courses on Algorithms, Data Structures and Data Mining
Literature: provided papers and book chapters (free and digitally available)
Examination: based on presentation, paper, programming, peer review and participation (no exam)
Brightspace link: 2324-S1 Social Network Analysis for Computer Scientists
Study points: 6 ECTS
Lecturer: dr. Frank Takes (f.w.takes@liacs.leidenuniv.nl, room 157b)
Assistants:
Hanjo Boekhout MSc
(room 126),
Rachel de Jong MSc
(room 152),
Marton Menyhert MSc, Shaoxuan (Anthony) Zhang, Chao Zhao.
Network with 1458 nodes and 1948 edges.
Date | Lecture (11:00-12:45) | Lab session (9:00-10:45) | ||
1. | Fri Sep 8, 2023 | No lecture | No lab session | |
2. | Fri Sep 15, 2023 |
Lecture 0: Course information Lecture 1: Introduction |
Introduction to Gephi Work on Assignment 1 |
|
3. | Fri Sep 22, 2023 | Lecture 2: Advanced concepts and centrality Lecture 2.5: Course project |
Introduction to NetworkX Work on Assignment 1 |
|
4. | Fri Sep 29, 2023 | Lecture 3: Network projection and community detection | Work on Assignment 1 | |
Mon Oct 2, 2023 |
Deadline for Assignment 1 (AoE; hand in via Brightspace) |
|||
5. | Fri Oct 6, 2023 | Lecture 4: Structure of the web and propgation-based centrality | Course project planning session Work on Assignment 2 | |
6. | Fri Oct 13, 2023 | Lecture 5: Network evolution and recent advances in network science | Data Science Lab introduction Work on Assignment 2 |
|
7. | Fri Oct 20, 2023 | No lecture | Work on Assignment 2 | |
Mon Oct 23, 2023 |
Deadline for Assignment 2 (AoE; hand in via Brightspace) |
|||
8. | Fri Oct 27, 2023 | Student presentations (8) | Course project paper writing tutorial Work on course project |
|
9. | Fri Nov 3, 2023 | Student presentations (8) | Work on course project | |
Fri Nov 10, 2023 |
Deadline for a first (printed) draft version of the Course Project paper (for today's peer review session) |
|||
10. | Fri Nov 10, 2023 | Peer review session | Work on course project | |
11. | Fri Nov 17, 2023 | Student presentations (8) | Work on course project | |
12. | Fri Nov 24, 2023 | Student presentations (8) | Work on course project | |
Fri Nov 24, 2023 |
Deadline for a preliminary version of the Course Project paper for course staff feedback (AoE; hand in via Brightspace) |
|||
Fri Dec 1, 2023 |
Deadline for completing a substantial part of the Course Project code & experimental pipeline (for today's code review session) |
|||
13. | Fri Dec 1, 2023 | Code review session | Work on course project | |
14. | Fri Dec 8, 2023 | Student presentations (8) | Work on course project | |
15. | Fri Dec 15, 2023 | Student presentations (reserve slot) | Work on course project | |
Dec 17, 2023 |
Deadline for final Course Project paper and accompanying code (AoE; hand in via Brightspace) |
|||
Dec 19, 2023 | Deadline for retake assignment to replace failed assignment(s) (AoE; hand in via email) | |||
Dec 22, 2023 | Course end | |||
Jan 31, 2024 | Course project retake deadline |
The main goal of this lab session is to become familiar with
NetworkX (a Python package to analyze networks for research purposes).
All relevant information on NetworkX can be found in the NetworkX online documentation.
For this lab session, you need a working Python environment. For this, there are two options:
Instructions for today: Lab session on NetworkX
Done? Proceed with Exercise 2 of Assignment 1.
Looking for a challenge? Check out these three alternatives (that you
can also use instead of NetworkX throughout the course, if you prefer
(but for which there is less help available)):
Note: as a result of lecture 1 not going through, you might not be familiar with all terms on concepts just yet. Ask questions from the assistants where needed, and otherwise wait for the upcoming lecture for more explanation and details.
About social network analysis tools and packages. There exist different tools and package for social network analysis. In this course, we will introduce you to two of them, with complementary advantages:
Learning goals. The main goal of this lab session is to become familiar with Gephi (experimental beta-software to visualize networks for research purposes) and its input format. At the end of this session you should be able to:
There is no deliverable for this lab session, but you are assumed to know the tool afterwards. Practice more at home if needed.
Instructions for today: Lab session on Gephi.
The following steps and tutorials will help you get to know Gephi.
Done? Get started with the practical part of Assignment 1. You can download the smaller datafiles medium.tsv and large.tsv. If you want to analyze huge.tsv, you will have to get it from the shared folder in the ISSC Linux or LIACS DS lab environment, as stated in the assignment.
Teams work on a course project for 60% of the course grade. The project is about a certain topic (see list below) related to social network analysis, and the project consists of:
This list of project topics is shown below. Please choose a topic (so, choose a number from 1 to 12) with your team (consisting of two students). Register your choice in Brightspace. Topics can be chosen up to 4 or 5 times; we will split the group into various parallel tracks.
A next step (somewhere around week 6) is that you choose which paper on the chosen topic you present.
If you are retaking the course because you failed the project last year, you cannot choose the same topic as last year.
Note: scientific papers (ACM, Elsevier, etc.) can often only be opened from within the university domain (or from home via university SSH/Citrix/VPN/etc.). IEEE Explore papers can often be opened by looking them up via computer.org. Alternative links and preprints of papers can often be found through Google Scholar by searching for "Title of the paper". Contact course staff if you have tried all of these options and are still not able to access the paper (do not pay!).
Some students have expressed interest in additional reading material to help freshen up on skills and knowledge required for this course.
See the Studyguide / prospectus for a more general description.
Topics include: SNA from a CS perspective (graph representation, complexity issues, examples), Graph Structure (power law, small world phenomenon, clustering coefficient, hierarchies), Paths and Distances (neighborhoods, radius, diameter), Spidering and Sampling (BFS, forest fire, random walks), Graph Compression (graph grammars, bitwise tricks, encryption, hashing), Centrality (degree centrality, closeness centrality, betweenness centrality, rating and ranking), Centrality and Webgraphs (HITS, PageRank, structure of the web), Community Detection (spectral clustering, modularity), Visualization (force-based algorithms, Gephi), Graph Models (random graphs, preferential attachment), Link Prediction (structure, semantics, prediction algorithms, graph mining), Contagion (diffusion of information, spreading activation, gossipping) and Privacy and Anonymity ((de-)anonymizing graphs, ethical aspects, privacy issues) and various other topics that have been added over the years but are not yet in the list above.
The course was also given in 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 and 2022.