CS 7280: Network Science

Instructional Team

Jason Cox
Jason Cox
Head TA

Overview

It is often the case that complex systems, both living and man-made, can be represented as static or dynamic networks of many interacting components. These components are typically much simpler in terms of behavior or function than the overall system, implying that the additional complexity of the latter is an emergent network property.

Network science is a relatively new discipline that investigates the topology and dynamics of such complex networks, aiming to better understand the behavior, function and properties of the underlying systems. The applications of network science cover physical, informational, biological, cognitive, and social systems. In this course, we will study algorithmic, computational, and statistical methods of network science, as well as various applications in social, communication and biological networks. A significant component of the course will focus on the overlap between machine learning and network science, covering methods for network inference, generative network models, graph embeddings using deep neural networks, and other state of the art topics.

Foundational Course Computing Systems Elective Machine Learning Elective

Course Goals

  1. Understand what "network science" means, how it relates to other disciplines (graph theory, data mining, machine learning, etc), and how it is useful in practice
  2. Learn how to detect, quantify and interpret important properties of real networks, such as power-law degree distribution, "small world" efficiency and clustering, assortativity, hierarchy, modularity and others
  3. Learn how to identify the most important nodes and links in a network through network centrality metrics and core identification algorithms
  4. Design and analyze algorithms that compute "communities" of highly clustered nodes, and learn how to compare such algorithms
  5. Appreciate the value of network modeling, and learn several approaches to model a static or dynamic network
  6. Understand the "network inference" problem and learn statistical and machine learning methods that estimate a network from noisy data
  7. Understand how representation learning (and deep learning in particular) is applied to network science
  8. Learn how to model and predict network epidemics, influence, cascades and other "spreading" phenomena
  9. Understand how the structure (topology) of a network affects the function and dynamic activity on that network
  10. Become familiar with several state-of-the-art research directions in network science

Sample Syllabus

Current syllabus (PDF)

Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.

Before Taking This Class...

Suggested Background Knowledge

The course hopes to attract students from different academic backgrounds and research interests (including math, physics, engineering, biology, neuroscience or sociology). Consequently, the instructor will try to keep the course as "self-contained" as possible. However, some knowledge (at the level of a good undergrad course) with calculus, probability, linear algebra, and programming is necessary.

Answering the questions on this prerequisite test will tell you if you are ready to take CS 7280. If you know how to solve these questions, or can do them with some revision of undergraduate-level probability and linear algebra, then you are good to start.

Technical Requirements and Software

We will be using NetworkX extensively: https://networkx.org

Academic Integrity

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.