INFO 4613/5613

Network Science

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

  1. Understand the theoretical and methodological implications of relational data.
  2. Apply and interpret metrics for network structure and dynamics.
  3. Use computational tools to analyze and visualize networks.
  4. 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.

For further reading, these have a DOI:

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.