- Level
- Undergraduate and graduate (cross-listed)
- Prerequisites
- None. Students use Python, but they do not need programming experience.
- Length
- 15 weeks, two 75-minute meetings a week
- Tools
- Python, Jupyter, NetworkX, pandas, matplotlib, seaborn, NDlib
- Taught
- 2 terms, Fall 2021 to Fall 2022
- License
- CC BY-NC-SA 4.0
Overview
Data about relationships and interactions are everywhere, and they need their own methods and theories to analyze and interpret. Network science is the umbrella term for the interdisciplinary theories and methods that analyze social, information, and other complex networks. Its quantitative tools link micro-level processes to macro-level structures in organizations, online communities, archives, and other settings. The course covers the fundamentals of networks, the metrics that describe their structure, and the dynamics of and on networks.
I taught it as a cross-listed course for undergraduates (INFO 4613) and graduate students (INFO 5613). There are no prerequisites. Students use Python with Jupyter notebooks, but they do not need programming experience, because the notebooks are documented well enough that students can “tinker” with code instead of writing it from scratch. There is no midterm or final exam. Students show what they learned through weekly reading responses, three module assignments, and an open-genre final project.
The four modules build on each other. Fundamentals introduces the vocabulary of network science and its data and visualizations, and Structure covers the metrics that describe networks at the node, local, network, and community levels. Dynamics asks how networks explain change in social systems. Applications comes last and extends the network framework to bipartite and weighted networks.
Learning objectives
- Understand the theoretical and methodological implications of relational data.
- Apply and interpret metrics for network structure and dynamics.
- Use computational tools to analyze and visualize networks.
- Integrate network methods and theories, and explain them to general audiences.
Topics
Each week has two meetings. In the first, I lecture on the core concepts and walk through a Jupyter notebook that implements them; its exercises are not graded, and students can keep working on them after class. The second meeting finishes or reviews the concepts, discusses the students’ reading responses, and introduces and works through the module assignment.
| Week | Module | Topic |
|---|---|---|
| 1 | Fundamentals | Introductions: computing environments; history and outline of network science |
| 2 | Fundamentals | Data and ethics: representing nodes and links; data collection and validity; ethics of network analysis |
| 3 | Fundamentals | Visualizing networks: aesthetics, pruning, and layout algorithms |
| 4 | Structure | Node-level structure: centrality, reciprocity, and social capital |
| 5 | Structure | Local-level structure: ego networks, triads, clustering, embeddedness, and assortativity |
| 6 | Structure | Network-level structure: small worlds, structural holes, degree distributions, components, and paths |
| 7 | Structure | Community structure: cohesion, community detection, cores, cliques, clans, blockmodels, and modularity |
| 8 | Dynamics | Random networks: Erdős–Rényi models, permutation tests, null models, and exponential random graph models |
| 9 | Dynamics | Network growth: preferential attachment, robustness, and percolation |
| 10 | Dynamics | Diffusion and influence: diffusion of innovations, simple and complex contagion, and threshold models |
| 11 | Dynamics | Homophily and selection: node attributes, similarity, and network endogeneity |
| 12 | Applications | Bipartite networks: the duality of people and groups, affiliation networks, and one-mode projections |
| 13 | Applications | Weighted networks: overlapping relationships and backbone extraction |
| 14–15 | — | Final project workshops and presentations |
Readings
There is no textbook. Instead, each week has two or three core readings from the research literature.
- Fundamentals
- Introductions: Borgatti et al., “Network Analysis in the Social Sciences” (2009); Butts, “Revisiting the Foundations of Network Analysis” (2009); Brandes et al., “What Is Network Science?” (2013)
- Data and ethics: Marsden, “Network Data and Measurement” (1990); Howison, Wiggins, and Crowston, “Validity Issues in the Use of Social Network Analysis with Digital Trace Data” (2011); Tubaro et al., “Social Network Analysis: New Ethical Approaches through Collective Reflexivity” (2020)
- Visualizing networks: Pfeffer and Freeman, “Social Network Visualization, Methods Of” (2019); Krempel, “Network Visualization,” in The SAGE Handbook of Social Network Analysis (2014); Foucault Welles and Meirelles, “Visualizing Computational Social Science” (2015)
- Structure
- Node-level structure: Freeman, “Centrality in Social Networks: Conceptual Clarification” (1978)
- Local-level structure: Feld, “Why Your Friends Have More Friends Than You Do” (1991); Milo et al., “Network Motifs: Simple Building Blocks of Complex Networks” (2002); Newman and Park, “Why Social Networks Are Different from Other Types of Networks” (2003)
- Network-level structure: Borgatti and Everett, “Models of Core/Periphery Structures” (2000); Uzzi, Amaral, and Reed-Tsochas, “Small-World Networks and Management Science Research” (2007); Barabási, “Scale-Free Networks: A Decade and Beyond” (2009)
- Community structure: Friedkin, “Social Cohesion” (2004); Fortunato and Hric, “Community Detection in Networks: A User Guide” (2016)
- Dynamics
- Random networks: Farine, “A Guide to Null Models for Animal Social Network Analysis” (2017); Faust and Skvoretz, “Comparing Networks across Space and Time, Size and Species” (2002)
- Network growth: Andriani and McKelvey, “From Gaussian to Paretian Thinking” (2009); Kossinets and Watts, “Empirical Analysis of an Evolving Social Network” (2006)
- Diffusion and influence: Valente, “Network Interventions” (2012); Guilbeault, Becker, and Centola, “Complex Contagions: A Decade in Review” (2018)
- Homophily and selection: McPherson, Smith-Lovin, and Cook, “Birds of a Feather: Homophily in Social Networks” (2001); Rivera, Soderstrom, and Uzzi, “Dynamics of Dyads in Social Networks” (2010)
- Applications
- Bipartite networks: Borgatti and Everett, “Network Analysis of 2-Mode Data” (1997); Latapy, Magnien, and Del Vecchio, “Basic Notions for the Analysis of Large Two-Mode Networks” (2008)
- Weighted networks: Barrat et al., “The Architecture of Complex Weighted Networks” (2004); Marsden and Campbell, “Reflections on Conceptualizing and Measuring Tie Strength” (2012); Stopczynski et al., “Measuring Large-Scale Social Networks with High Resolution” (2014)
For further reading, these have a DOI:
- Granovetter, “The Strength of Weak Ties” (1973)
- Breiger, “The Duality of Persons and Groups” (1974)
- Watts and Strogatz, “Collective Dynamics of ‘Small-World’ Networks” (1998)
- Newman, “The Structure and Function of Complex Networks” (2003)
- Watts, “The ‘New’ Science of Networks” (2004)
- Centola and Macy, “Complex Contagions and the Weakness of Long Ties” (2007)
- Clauset, Shalizi, and Newman, “Power-Law Distributions in Empirical Data” (2009)
- Serrano, Boguñá, and Vespignani, “Extracting the Multiscale Backbone of Complex Weighted Networks” (2009)
- Shalizi and Thomas, “Homophily and Contagion Are Generically Confounded in Observational Social Network Studies” (2011)
The course’s BibTeX file holds about 220 references: the core readings, five to twelve extension readings for each week, and a longer list on network theory, mixed methods, computational social science, and network research in several disciplines.
Assignments and assessment
| Assignment | Share of grade |
|---|---|
| Attendance | 15% |
| Reading responses | 26% |
| Module assignments | 30% |
| Final project | 29% |
Attendance in class is required, because the methods are cumulative.
Reading responses are about 500 words each, one for each topic week (weeks 1–13). A response connects the week’s readings and lecture to the student’s research interests, personal experiences, or historical and contemporary issues, or it can be a short exploratory data analysis. Students submit a PDF document or a Jupyter notebook saved as HTML, and they give short feedback on a classmate’s response. The responses set up the discussion in the second meeting of the week.
Module assignments come at the end of Fundamentals, Structure, and Dynamics, three in all (10% each). Each one asks students to apply, synthesize, and interpret the module’s methods and theories, and each builds on the exercises in the lecture notebooks. Applications has no assignment, so that students can focus on their final projects.
The final project asks for a deeper synthesis and application of the course concepts. The genre is open: a literature review, a research proposal, an empirical analysis, a research paper, or an op-ed. The project is graded on the correct application of network science concepts; how persuasive the theoretical mechanisms and the empirical setting are; and the clarity of the writing, tables, and figures. The class and I develop the details together, and in the last two weeks students workshop or present their projects and get feedback from their peers.
Adopt this course
Students use the Anaconda distribution of Python 3.8 or later, with Jupyter. The notebooks use NetworkX, pandas, NumPy, SciPy, matplotlib, and seaborn, and the diffusion notebook also needs NDlib (pip install ndlib). Students may use R, MATLAB, Julia, or other environments, but the course materials only support Python. The readings also introduce other network tools: igraph, Gephi, Cytoscape, Graphviz, netwulf, and the powerlaw package.
The datasets in the notebooks include Game of Thrones scene and character data from Jeffrey Lancaster, hyperlinks between US political blogs (Adamic and Glance), friendships in 17 Ugandan villages (Chami et al.), a coauthorship network of network scientists, IMDB actor collaborations from 2000 to 2004, and Zachary’s karate club and Les Misérables (both included in NetworkX). The random networks notebook collects Wikipedia hyperlinks through the MediaWiki API, and the network growth notebook uses a Twitter mentions dataset that is not in the repository.
The Fall 2021 repository has a lecture notebook for every topic week, plus slides for weeks 1–10: Introductions, Data and ethics, Visualizing networks, Node-level metrics, Local-level metrics, Network-level metrics, Community structure, Random networks, Network growth, Diffusion and influence, Similarity and homophily, Bipartite networks, and Weighted networks. The module assignments have no public notebooks.
The topics fill a 15-week semester with one week off for a break, and each module ends with its assignment. Applications has no assignment, so in a shorter term I would drop its two weeks or combine them. The notebooks are under the MIT License; the material on this page is under CC BY-NC-SA 4.0.
Past offerings
I first taught the course to graduate students in Fall 2021 and cross-listed it for undergraduates in Fall 2022, with the same weekly design.
| Term | Design | Materials |
|---|---|---|
| Fall 2021 | Graduate only (INFO 5613). The four modules on this page | Repository |
| Fall 2022 | Cross-listed (INFO 4613/5613). The design on this page | — |
Course materials on this page are licensed under CC BY-NC-SA 4.0: reuse and adapt them with credit, not for commercial use, and share adaptations under the same license. Last reviewed October 8, 2026.