Skip to content

network-science-data-and-models/phys7332_fa25

Repository files navigation

PHYS 7332: Network Science Data & Models -- Fall 2025

Welcome to PHYS 7332! This repository hosts each week's Jupyter notebooks and supporting materials.

Course Overview

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: http://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.

Materials

There are no required materials for this course, but we will periodically draw from:

Additionally, we recommend engagement with other useful network science and/or Python materials:

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. 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)

  1. Motifs in Networks
  2. Mechanistic vs Statistical Network Models
  3. Robustness / Resilience of Network Structure
  4. Network Game Theory (Prisoner’s Dilemma, Schelling Model, etc.)
  5. Homophily in Networks
  6. Network Geometry and Random Hyperbolic Graphs
  7. Information Theory in/of Complex Networks
  8. Discrete Models of Network Dynamics (Voter model, Ising model, SIS, etc.)
  9. Continuous Models of Network Dynamics (Kuramoto model, Lotka-Volterra model, etc.)
  10. Percolation in Networks
  11. Signed Networks
  12. Coarse Graining Networks
  13. Mesoscale Structure in Networks (e.g. core-periphery)
  14. Graph Isomorphism and Approximate Isomorphism
  15. Inference in Networks: Beyond Community Detection
  16. Activity-Driven Network Models
  17. Forecasting with Networks
  18. Higher-Order Networks
  19. Introduction to Graph Neural Networks
  20. Hopfield Networks and Boltzmann Machines
  21. Graph Curvature or Topology
  22. Reservoir Computing
  23. Adaptive Networks
  24. Multiplex/Multilayer Networks
  25. Simple vs. Complex Contagion
  26. Graph Summarization Techniques
  27. Network Anomalies
  28. Modeling Cascading Failures
  29. Topological Data Analysis in Networks
  30. Self-organized Criticality in Networks
  31. Network Rewiring Dynamics
  32. Fitting Distributions to Network Data
  33. Hierarchical Networks
  34. Ranking in Networks
  35. Deeper Dive: Random Walks on Networks
  36. Deeper Dive: Directed Networks
  37. Deeper Dive: Network Communities
  38. Deeper Dive: Network Null Models
  39. Deeper Dive: Network Paths and their Statistics
  40. Deeper Dive: Network Growth Models
  41. Deeper Dive: Network Sampling
  42. Deeper Dive: Spatially-Embedded and Urban Networks
  43. Deeper Dive: Hypothesis Testing in Social Networks
  44. Deeper Dive: Working with Massive Data
  45. Deeper Dive: Bipartite Networks
  46. Many more possible ideas! Send us whatever you come up with

Schedule

Schedule

DATE CLASS
Mon, Sep 1, 25 Labor Day
Wed, Sep 3, 25 Class 0: Introduction to the Course, GitHub, Computing Setup
Fri, Sep 5, 25 Class 1: Python Refresher (Data Structures, NumPy)
   
Mon, Sep 8, 25 ---
Wed, Sep 10, 25 Class 2: Introduction to NetworkX 1 — Loading Data, Basic Statistics
Fri, Sep 12, 25 Class 3: Introduction to NetworkX 2 — Graph Algorithms
   
Mon, Sep 15, 25 Announce Assignment 1
Wed, Sep 17, 25 Class 4: Distributions of Network Properties & Centralities
Fri, Sep 19, 25 Class 5: Scraping Web Data 1 — BeautifulSoup, HTML, Pandas
   
Mon, Sep 22, 25 ---
Wed, Sep 24, 25 Class 6: Data Science & SQL
Fri, Sep 26, 25 Class 7: Scraping Web Data 2 — Creating a Network from SQL Data
   
Mon, Sep 29, 25 Assignment 1 due September 29
Wed, Oct 1, 25 Class 8: Clustering & Community Detection 1 — Traditional
Fri, Oct 3, 25 Class 9: Clustering & Community Detection 2 — Contemporary
   
Mon, Oct 6, 25 Announce Assignment 2
Wed, Oct 8, 25 Class 10: Clustering & Community Detection 3 — Advanced
Fri, Oct 10, 25 Class 11: Project Update Presentations
   
Mon, Oct 13, 25 Indigenous Peoples’ Day
Wed, Oct 15, 25 Class 12: Visualization 1 — Python
Fri, Oct 17, 25 Class 13: Visualization 2 — Guest Lecture (Pedro Cruz, Northeastern)
   
Mon, Oct 20, 25 Assignment 2 due October 20
Wed, Oct 22, 25 Class 14: Introduction to Machine Learning 1 — General
Fri, Oct 24, 25 Class 15: Introduction to Machine Learning 2 — Networks
   
Mon, Oct 27, 25 Announce Assignment 3
Wed, Oct 29, 25 Class 16: Dynamics on Networks 1 — Diffusion and Random Walks
Fri, Oct 31, 25 Class 17: Dynamics on Networks 2 — Compartmental Models
   
Mon, Nov 3, 25 ---
Wed, Nov 5, 25 Class 18: Dynamics on Networks 3 — Agent‑Based Models
Fri, Nov 7, 25 Class 19: Network Sampling
   
Mon, Nov 10, 25 Assignment 3 due November 10
Wed, Nov 12, 25 Class 20: Network Filtering / Thresholding
Fri, Nov 14, 25 Class 21: Dynamics of Networks — Temporal Networks
   
Mon, Nov 17, 25 ---
Wed, Nov 19, 25 Class 22: Network Comparison & Graph Distances
Fri, Nov 21, 25 Class 23: Network Reconstruction from Dynamics
   
Mon, Nov 24, 25 Thanksgiving Break (No Class)
Wed, Nov 26, 25 ---
Fri, Nov 28, 25 ---
   
Mon, Dec 1, 25 ---
Wed, Dec 3, 25 Class 24: Big Data — Scalability & Cluster Computing
Fri, Dec 5, 25 Class 25: Spatial Data, OSMnx, GeoPandas
   
Mon, Dec 8, 25 ---
Thu, Dec 11, 25 Class 26: Final Presentations
Fri, Dec 12, 25 ---

Repository Contents

  • notebooks/class_##/: Weekly lesson notebooks and in-class demos.
  • requirements.txt: Python dependencies; install via pip install -r requirements.txt.
  • _config.yml and _toc.yml: Jupyter Book configuration and table of contents.

Getting Started

  1. Clone the repo
    git clone https://github.com/network-science-data-and-models/phys7332_fa25.git
    cd phys7332_fa25
    

About

Fall 2025 course materials for PHYS 7332

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •