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 and are in a different programme, then you should contact the lecturer in advance.
COVID-19 policy. The 2021 SNACS course is an on-site course for all students, unless valid COVID-19 related aspects prevent the student from being present. Lectures are broadcasted via Zoom; see Brightspace.
Lectures: Fridays from 11:15 to 13:00 in Gorlaeus "Havingazaal" (except Sep 17 & Dec 10: Van Steenis F104)
Lab sessions: Fridays from 9:15 to 11:00 in Snellius rooms 302/304 and 306/308
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: 2122-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
(h.d.boekhout@liacs.leidenuniv.nl, room 126),
Yali Wang MSc
(y.wang@liacs.leidenuniv.nl, room 142),
Rachel de Jong MSc
(r.g.de.jong@liacs.leidenuniv.nl
and Bart de Zoete BSc
(b.de.zoete@umail.leidenuniv.nl)
Network with 1458 nodes and 1948 edges.
Date | Lecture (11:15-13:00) | Lab session (9:15-11:00) | |||
1. | Sep 10, 2021 |
Lecture 0: Course information Lecture 1: Introduction |
No lab session in the first week, but if you have not already, please ensure your Linux account works in room 302/304 and 306/308. |
||
2. | Sep 17, 2021 | Lecture 2: Advanced concepts and centrality Example presentation |
Introduction to Gephi Work on Assignment 1 |
||
3. | Sep 24, 2021 | Lecture 3: Network projection and community structure | Introduction to NetworkX Work on Assignment 1 |
||
4. | Oct 1, 2021 | Lecture 4: Structure of the web and propgation-based centrality | Work on Assignment 1 | ||
Oct 4, 2021 | Deadline for Assignment 1 | ||||
5. | Oct 8, 2021 | Lecture 5: Network evolution and model extensions | Team project planning & DS Lab Work on Assignment 2 |
||
Student presentations; room 402 is moderated by Frank, room 403 by Hanjo | |||||
Lecture (11:15-13:00) | Lab session (9:15-11:00) | ||||
6. | Oct 15, 2021 | Track B (402) |
9. Community detection 2
12. Data errors in networks 1 |
Track A (402) |
15. Diameter computation
24. Link prediction in temporal networks |
Track C (403) |
7. Closeness centrality 2 (top-k)
22. Link prediction 2 |
Track B+C | Work on Assignment 2 | ||
7. | Oct 22, 2021 | Track A (402) |
2. Anomaly detection 2
30. Network embeddings 1 |
Work on Assignment 2 | |
Track B (403) |
19. Influence spread and virality 1
51. Shortest paths 2 |
||||
Oct 25, 2021 | Deadline for Assignment 2 | ||||
8. | Oct 29, 2021 | Track A (402) |
16. Graph compression
20. Influence spread and virality 2 |
Track B (402) |
32. Personalized PageRank
37. Triangle counting |
Track C (403) |
26. Motifs in multilayer networks
45. Graph compression |
Track A+C | Course project paper - Team session | ||
9. | Nov 5, 2021 | Track A (402) |
4. Betweenness centrality 1
42. Dense subgraph detection |
Track C (402) |
8. Community detection 1
31. Network embeddings 2 |
Track B (403) |
3. Anonymity in networks
17. Graph evolution rules |
Track B | Course project paper - Team session | ||
Nov 11, 2021 | Deadline for having a first version of the course project paper ready in PDF for peer review by fellow students | ||||
10. | Nov 12, 2021 | Track C (402) |
1. Anomaly detection 1
39. Visualization algorithms 2 |
Peer review session | |
Track A (403) |
11. Community detection 4
52. Link prediction 2 |
||||
11. | Nov 19, 2021 | Track B (402) |
23. Link prediction in signed networks |
Track A (402) |
33. Sampling from networks 1
46. Graph obfuscation |
Track C (403) |
13. Data errors in networks 2
18. Graph obfuscation |
Track B+C | Work on course project | ||
Nov 22, 2021 | Optional deadline for preliminary course project paper feedback from course staff (hand in via Brightspace) | ||||
Nov 26, 2021 | Deadline for having a substantial amount of code ready for peer review | ||||
12. | Nov 26, 2021 | Track B (402) |
38. Visualization algorithms 1
40. Visualization algorithms 3 |
Code review session | |
Track C (403) |
28. Motifs in temporal networks
47. Local cluster detection |
||||
13. | Dec 3, 2021 | Track A (402) |
25. Local cluster detection
29. Neighborhood approximation |
Track C (402) |
41. Anonymity in networks
49. Personalized PageRank |
Track B (403) |
6. Closeness centrality 1
27. Motifs in networks |
Track A+B | Work on course project | ||
14. | Dec 10, 2021 | Track A (402) |
50. Shortest paths 1
21. Link prediction 1 36. Shortest paths 2 |
Track B (402) |
14. Dense subgraph detection
34. Sampling from networks 2 |
Track C (403) |
44. Community detection 4
35. Shortest paths 1 |
Track A+C | Work on course project | ||
Dec 13, 2021 | Deadline for final course project paper | ||||
Dec 20, 2021 | Retake deadline for assignments | ||||
Dec 23, 2021 | Course end. Grades are sent to student administration | ||||
Jan 31, 2022 | Course project retake deadline |
Code review (week 12).
The main goal of this code review session is to is conduct a review of another team's code and experimental setup, and to receive feedback on one's own code. The mandatory deliverable for today is a contribution to the SNACS Collaborative Code Review 2021 Best Practices document.
What to do? Watch the code review lecture movie, and follow the instructions therein. You can also have a look at the code review session slides.
We use the same division into teams as for the peer review in week 10. In case team pairs are not complete, contact the course staff around Snellius 302/304. Students who are not able to come to the university because of the campus protocol and/or other corona-related reasons, can join the online session (see Brigthspace for Zoom URL), where pairing will be done on the spot.
Peer review (week 10).
The main goal of this peer review session is to conduct a review of another team's draft project paper, and to receive feedback on one's own paper. The mandatory deliverable for today is a short report on the feedback you were able to give the other team, to be handed in via Brightspace at the end of the session.
What to do? Watch the peer review lecture movie, and follow the instructions therein. You can also have a look at the peer review session slides.
Please find the team you are matched with, and ask help from the assistants if needed. Each line lists two teams that are matched up.
1. Anomaly detection 1 | 2. Anomaly detection 2 |
3. Anonymity in networks | 41. Anonymity in networks |
4. Betweenness centrality 1 | 10. Community detection 3 |
6. Closeness centrality 1 | 7. Closeness centrality 2 (top-k) |
8. Community detection 1 | 9. Community detection 2 |
11. Community detection 4 | 44. Community detection 4 |
12. Data errors in networks 1 | 13. Data errors in networks 2 |
14. Dense subgraph detection | 42. Dense subgraph detection |
15. Diameter computation | 17. Graph evolution rules |
16. Graph compression | 45. Graph compression |
18. Graph obfuscation | 46. Graph obfuscation |
19. Influence spread and virality 1 | 20. Influence spread and virality 2 |
21. Link prediction 1 | 23. Link prediction in signed networks |
22. Link prediction 2 | 52. Link prediction 2 |
24. Link prediction in temporal networks | 51. Shortest paths 2 |
25. Local cluster detection | 47. Local cluster detection |
26. Motifs in multilayer networks | 27. Motifs in networks |
28. Motifs in temporal networks | 29. Neighborhood approximation |
30. Network embeddings 1 | 31. Network embeddings 2 |
32. Personalized PageRank | 49. Personalized PageRank |
33. Sampling from networks 1 | 34. Sampling from networks 2 |
35. Shortest paths 1 | 50. Shortest paths 1 |
37. Triangle counting | 39. Visualization algorithms 2 |
38. Visualization algorithms 1 | 40. Visualization algorithms 3 |
The main goal of this lab session is to ensure that your team is all set for making serious progress writing the course project paper in the coming weeks.
Course project paper
Earlier, you have made a project planning.
One upcoming deadline is the first version of your paper for the peer review session (November 11).
As always: please ask course staff for help if you are still unsure about certain aspects of your project.
The main goal of this lab session is to get started with both the course project and with Assignment 2, and to get to know the data science lab.
If you are working remotely, learn how-to set up remote access to the LIACS Research and Education Laboratory (REL)
Data Science Lab
The data science lab website provides necessary information and documentation.
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:
Course project
Below are some topics you can discuss and investigate together with your project team partner.
Assignment 2
Get started with the practical part of Assignment 2.
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.
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 two alternatives (that you
can also use instead of NetworkX throughout the course, if you prefer
(but for which there is less help available)):
Teams work on a course project for 60% of the course grade. The project is about a certain topic related to social network analysis, and the project consists of:
Instructions and a template for the course project paper are available.
This list of project topics is shown below. Please choose a topic with your team (consisting of two students). Register your choice in Brightspace. Topics that do not have a number appended to it, can be chosen twice, to accomodate the large number of students this year. 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 e-Studyguide 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, NodeXL), 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 and 2020.