PHYS 7332 - Network Science Data II - Fall 2025
Wednesdays & Fridays: 11:45am – 1:25pm
September 3 – December 11, 2023
177 Huntington, room 207
Summary
This course offers an introduction to network analysis and is designed to provide students with an overview of the core data scientific skills required to analyze complex networks. Through hands-on lectures, labs, and projects, students will learn actionable skills about network analysis techniques using Python (in particular, the networkx library). The course network data collection, data input/output, network statistics, dynamics, and visualization. Students also learn about random graph models and algorithms for computing network properties like path lengths, clustering, degree distributions, and community structure. In addition, students will develop web scraping skills and will be introduced to the vast landscape of software tools for analyzing complex networks. The course ends with a large-scale final project that demonstrates the proficiency of the students in network analysis. This course has been built from the foundation of the years of work/development by Matteo Chinazzi and Qian Zhang, for earlier iterations of Network Science Data.
Course Website: https://network-science-data-and-models.github.io/phys7332_fa25/
Github Repository: https://github.com/network-science-data-and-models/phys7332_fa25/
Instructors
Brennan Klein is core faculty at the Network Science Institute at Northeastern University and Assistant Teaching Professor in the Department of Physics. He is the director of the Complexity & Society Lab, which spans two broad research areas: 1) Information, emergence, and inference in complex systems — developing tools and theory for characterizing dynamics, structure, and scale in networks, and 2) Public health and public safety — creating and analyzing large-scale datasets that reveal inequalities in the U.S., from epidemics to mass incarceration. In 2023, Prof. Klein was awarded the René Thom Young Researcher Award, given to a researcher to recognize substantial early career contributions and leadership in research in Complex Systems-related fields. He received a PhD in Network Science in 2020 from Northeastern University and a BA in Cognitive Science from Swarthmore College in 2014. Website: https://brennanklein.com/.
Course Learning Outcomes
Students should leave this class with an ever-growing codebase of resources for analyzing and deriving insights from complex networks, using Python. These skills range from being able to (from scratch) code algorithms on graphs, including path length calculations, network sampling, dynamical processes, and network null models; as well as interfacing with standard data science questions around storing, querying, and analyzing large complex datasets.
Proficiency in Python and networkx for network analysis.
Strong foundation of complex network algorithms and their applications.
Skills in statistical description of networks.
Experience in collecting and analyzing online data.
Broad knowledge of various network libraries and tools.
Course Materials
We will rely on an ongoing Jupyter Book to base our class on, which can be found at: https://network-science-data-and-models.github.io/phys7332_fa25/. This book is the result of years of effort by Matteo Chinazzi and Qian Zhang, who taught previous versions of this course to Network Science PhD students. In 2024, Alyssa Smith and I reimagined the course, while keeping a substantial amount of their original material.
Besides that, there are no required materials for this course, but we will periodically draw from:
Bagrow & Ahn (2024). Working with Network Data: A Data Science Perspective. Cambridge University Press; 1st Edition; 978-1009212595. https://www.cambridge.org/network-data.
Additionally, we recommend engagement with other useful network science and/or Python materials:
Barabási (2016). Network Science. Cambridge University Press; 1st Edition; 978-1107076266. http://networksciencebook.com.
Newman (2018). Networks: An Introduction. Oxford University Press; 2nd Edition; 978-0198805090. https://global.oup.com/academic/product/networks-9780198805090.
Barrat, Barthelemy & Vespignani (2008). Dynamical Processes on Complex Networks. Cambridge University Press; 1st Edition; 978-0511791383. https://doi.org/10.1017/CBO9780511791383.
VanderPlas (2019). Python Data Science Handbook. O'Reilly Media, Inc; 978-1491912058. https://github.com/jakevdp/PythonDataScienceHandbook.
Coursework, Class Structure, Grading
This is a twice-weekly hands-on class that emphasizes building experience with coding. This does not necessarily mean every second of every class will be live-coding, but it will inevitably come up in how the class is taught. We are often on the lookout for improving the pedagogical approach to this material, and we would welcome feedback on class structure. We will try to incorporate a 5-minute break for stretching, Q&A, grabbing water, etc. within each class. The course will be co-taught, featuring lectures from the core instructors as well as outside experts. Grading in this course will be as follows:
Class Attendance & Participation: 10%
Problem Sets: 45%
Mid-Semester Project Presentation: 15%
Final Project — Presentation & Report: 30%
Final Project
The final project for this course is a chance for students to synthesize their knowledge of network analysis into pedagogical materials around a topic of their choosing. Modeled after chapters in the Jupyter book for this course, students will be required to make a new “chapter” for our class’s textbook; this requires creating a thoroughly documented, informative Python notebook that explains an advanced topic that was not deeply explored in the course. For these projects, students are required to conduct their own research into the background of the technique, the original paper(s) introducing the topic, and how/if it is currently used in today’s network analysis literature. Students will demonstrate that they have mastered this technique by using informative data for illustrating the usefulness of the topic they’ve chosen. Every chapter should contain informative data visualizations that build on one another, section-by-section. The purpose of this assignment is to demonstrate the coding skills gained in this course, doing so by learning a new network analysis technique and sharing it with members of the class. Over time, these lessons may find their way into the curriculum for future iterations of this class. Halfway through the semester, there will be project update presentations where students receive class and instructor feedback on their project topics. Throughout, we will be available to brainstorm students’ ideas for project topics.
Ideas for Final Project Chapters (non-exhaustive):
Motifs in Networks
Mechanistic vs Statistical Network Models
Robustness / Resilience of Network Structure
Network Game Theory (Prisoner’s Dilemma, Schelling Model, etc.)
Homophily in Networks
Network Geometry and Random Hyperbolic Graphs
Information Theory in/of Complex Networks
Discrete Models of Network Dynamics (Voter model, Ising model, SIS, etc.)
Continuous Models of Network Dynamics (Kuramoto model, Lotka-Volterra model, etc.)
Percolation in Networks
Signed Networks
Coarse Graining Networks
Mesoscale Structure in Networks (e.g. core-periphery)
Graph Isomorphism and Approximate Isomorphism
Inference in Networks: Beyond Community Detection
Activity-Driven Network Models
Forecasting with Networks
Higher-Order Networks
Introduction to Graph Neural Networks
Hopfield Networks and Boltzmann Machines
Graph Curvature or Topology
Reservoir Computing
Adaptive Networks
Multiplex/Multilayer Networks
Simple vs. Complex Contagion
Graph Summarization Techniques
Network Anomalies
Modeling Cascading Failures
Topological Data Analysis in Networks
Self-organized Criticality in Networks
Network Rewiring Dynamics
Fitting Distributions to Network Data
Hierarchical Networks
Ranking in Networks
Deeper Dive: Random Walks on Networks
Deeper Dive: Directed Networks
Deeper Dive: Network Communities
Deeper Dive: Network Null Models
Deeper Dive: Network Paths and their Statistics
Deeper Dive: Network Growth Models
Deeper Dive: Network Sampling
Deeper Dive: Spatially-Embedded and Urban Networks
Deeper Dive: Hypothesis Testing in Social Networks
Deeper Dive: Working with Massive Data
Deeper Dive: Bipartite Networks
Many more possible ideas! Send us whatever you come up with
Syllabus below (or pdf here).
This schedule is subject to change.
Class | Date | Topic | Instructor |
---|---|---|---|
– | Mon, Sep 1, 25 | ||
0 | Wed, Sep 3, 25 | Introduction to the Course, GitHub, Computing Setup | Brennan Klein |
1 | Fri, Sep 5, 25 | Python Refresher (Data Structures, NumPy) | Brennan Klein |
– | Mon, Sep 8, 25 | ||
2 | Wed, Sep 10, 25 | Introduction to NetworkX 1 — Loading Data, Basic Statistics | Brennan Klein |
3 | Fri, Sep 12, 25 | Introduction to NetworkX 2 — Graph Algorithms | Brennan Klein |
– | Mon, Sep 15, 25 | Assignment 1 announced | |
4 | Wed, Sep 17, 25 | Distributions of Network Properties & Centralities | Brennan Klein |
5 | Fri, Sep 19, 25 | Scraping Web Data 1 — BeautifulSoup, HTML, Pandas | Brennan Klein |
– | Mon, Sep 22, 25 | ||
6 | Wed, Sep 24, 25 | Data Science & SQL | Alyssa Smith |
7 | Fri, Sep 26, 25 | Scraping Web Data 2 — Creating a Network from SQL Data | Alyssa Smith |
– | Mon, Sep 29, 25 | Assignment 1 due | |
8 | Wed, Oct 1, 25 | Clustering & Community Detection 1 — Traditional | Brennan Klein |
9 | Fri, Oct 3, 25 | Clustering & Community Detection 2 — Contemporary | Brennan Klein |
– | Mon, Oct 6, 25 | Assignment 2 announced | |
10 | Wed, Oct 8, 25 | Clustering & Community Detection 3 — Advanced | Erik Weis |
11 | Fri, Oct 10, 25 | Project Update Presentations | Brennan Klein |
– | Mon, Oct 13, 25 | ||
12 | Wed, Oct 15, 25 | Visualization 1 — Python | Brennan Klein |
13 | Fri, Oct 17, 25 | Visualization 2 — Guest Lecture (Pedro Cruz – Northeastern) | Brennan Klein |
– | Mon, Oct 20, 25 | Assignment 2 due | |
14 | Wed, Oct 22, 25 | Introduction to Machine Learning 1 — General | Alyssa Smith |
15 | Fri, Oct 24, 25 | Introduction to Machine Learning 2 — Networks | Alyssa Smith |
– | Mon, Oct 27, 25 | Assignment 3 announced | |
16 | Wed, Oct 29, 25 | Dynamics on Networks 1 — Diffusion and Random Walks | Brennan Klein |
17 | Fri, Oct 31, 25 | Dynamics on Networks 2 — Compartmental Models | Brennan Klein |
– | Mon, Nov 3, 25 | ||
18 | Wed, Nov 5, 25 | Dynamics on Networks 3 — Agent‑Based Models | Brennan Klein |
19 | Fri, Nov 7, 25 | Network Sampling | Brennan Klein |
– | Mon, Nov 10, 25 | Assignment 3 due | |
20 | Wed, Nov 12, 25 | Network Filtering / Thresholding | Brennan Klein |
21 | Fri, Nov 14, 25 | Dynamics of Networks — Temporal Networks | Brennan Klein |
– | Mon, Nov 17, 25 | ||
22 | Wed, Nov 19, 25 | Network Comparison & Graph Distances | Brennan Klein |
23 | Fri, Nov 21, 25 | Network Reconstruction from Dynamics | Brennan Klein |
– | Mon, Nov 24, 25 | Thanksgiving Break (No Class) | |
– | Wed, Nov 26, 25 | ||
– | Fri, Nov 28, 25 | ||
– | Mon, Dec 1, 25 | ||
24 | Wed, Dec 3, 25 | Big Data — Scalability & Cluster Computing | Brennan Klein |
25 | Fri, Dec 5, 25 | Spatial Data, OSMNX, GeoPandas | Brennan Klein |
– | Mon, Dec 8, 25 | ||
26 | Thu, Dec 11, 25 | Final Presentations | Brennan Klein |
– | Fri, Dec 12, 25 |