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.
Lectures: Fridays from 9:00 to 10:45 in Gorlaeus lecture room CM 1.26
Lab sessions: Fridays from 11:00 to 12:45 in Gorlaeus lab rooms DM0.09, DM0.13 and DM0.21
Prerequisites: a bachelor degree in CS with courses on Algorithms, Data Structures, and, Machine Learning or Data Mining
Literature: The Atlas for the Aspiring Network Scientist (by Michele Coscia, v3, 2025)
Examination: assignments throughout the semester and a final exam at the end of the semester
Brightspace link:
2627-S1 Social Network Analysis for Computer Scientists
Study guide link: Social Network Analysis for Computer Scientists
Study points: 6 ECTS
Course staff: prof. dr. Frank Takes (f.w.takes@liacs.leidenuniv.nl, BE 3.07),
Rachel de Jong MSc (BE 3.03)
Assistants:
Gamal Adel Elgamal MSc (BE 3.23),
Nicholas Assiotis BSc, Agata Cieliczko BSc, Bart Holterman BSc, Rachel Hau BSc and Marc Wijnands BSc
Network with 1458 nodes and 1948 edges.
| Date | Lecture (9:00-10:45) | Lab session (11:00-12:45) | |
| 1. | Fri Sep 4, 2026 |
Lecture 0: Course information (Chapter 1) FWT Lecture 1: Introduction to network analysis FWT (Chapter 6, 8 and 10) |
Instruction: Introduction to Gephi Work on Assignment 1 |
| 2. | Fri Sep 11, 2026 |
Lecture 2: Small world phenomenon, Advanced network concepts and Centrality FWT (Chapter 7, 12, 13 and 14) |
Instruction: Introduction to NetworkX Work on Assignment 1 |
| 3. | Fri Sep 18, 2026 |
Lecture 3: Applied network concepts and Network projection FWT (Chapter 9, 26.1, 30 and 31) |
First ANS Practice Session Work on Assignment 1 |
| 4. | Fri Sep 25, 2026 | Lecture 4: Community detection and Core/periphery structure FWT (Chapter 32, 35 and 36) |
Work on Assignment 1 |
| 5. | Fri Oct 2, 2026 | Lecture 5: Structure of the web and propagation-based centrality FWT (Chapter 11) |
Work on Assignment 1 |
| Mon Oct 5, 2026 | Deadline for Assignment 1 (14:00; hand in via Brightspace) | ||
| 6. | Fri Oct 9, 2026 | Lecture 6: Graph models and Synthetic networks RDJ (Chapter 16 and 17) |
Introduction to REL Compute Work on Assignment 2 |
| 7. | Fri Oct 16, 2026 | Lecture 7: Network evolution and sampling FWT |
... Work on Assignment 2 |
| 8. | Fri Oct 23, 2026 | Lecture 8: Machine Learning and Networks EH |
Work on Assignment 2 |
| 9. | Fri Oct 30, 2026 | Lecture 9: ... FWT |
Work on Assignment 2 |
| 10. | Fri Nov 6, 2026 | Lecture 10: ... |
Work on Assignment 2 |
| Mon Nov 9, 2026 | Deadline for Assignment 2 (14:00; hand in via Brightspace) | ||
| 11. | Fri Nov 13, 2026 | Lecture 11: ... |
... |
| 12. | Fri Nov 20, 2026 | Lecture 12: ... |
... |
| 13. | Fri Nov 27, 2026 | Practice exam (9:30 - 12:30 in Computer Rooms) | ... |
| Fri Dec 4, 2026 | No lecture |
||
| Fri Dec 11, 2026 | Exam (13:00 - 16:00 in USC) | ||
| Mon Dec 14, 2026 | Deadline for Retake Assignment to replace failed assignment(s) (14:00; hand in via Brightspace on top of failed assignment) | ||
| Thu Dec 17, 2026 | Exam result inspection opportunity (12:00 in teacher's office BE 3.07) | ||
| Jan 29, 2027 | Retake Exam (in USC) | ||
The main goal of this short lab session is to get to know the data science lab, nowadays known as REL Compute.
REL Compute Lab
The REL website provides necessary information and documentation. The emailadres to contact in case of access issues or other technical problems is rel@liacs.leidenuniv.nl.
Become familiar with the lab and how to run code on it, and how to place data within the lab. This may be handy for Assignment 2 and/or the course project. Remember:
Think of setting up passwordless login, consider using ProxyJump to avoid the gateway, and perhaps use sshfs to mount your remote homedirectory. Some IDEs also offer all of this functionality.
Done exploring REL Compute? Continue with Assignment 2.
The main goal of this session is to get to know the ANS system for digital examination, and practice with more theoretical aspects of the course.
Navigate to ANS, and follow the instructions there.
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.
Your Python environment
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)):
Running intro problems regarding prior knowledge on python programming? See the reading material at the bottom of this course website.
About social network analysis tools and packages. There exist different tools and packages for social network analysis. In this course, we cover 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.
Note that the tutorial briefly covers topics such as centrality and communities, which will not be covered extensively until Lecture 2, 3 and 4.
Done? Get started with the practical part of Assignment 1. You can download the datafiles here. 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.
In the past, students have expressed interest in additional reading material to help freshen up on skills and knowledge required for this course.