Network science is an exciting new field that studies large and complex networks, such as social, biological, and computer networks.
We will study, formalize, and quantify (social) network phenomena such as "the small world", "rich get richer", "birds of a feather flock together", "strength of weak ties" and others.
The class will address topics from network structure and growth to the spread of epidemics.
We also consider the diverse algorithmic techniques and mathematical models that are used to analyze such large networks, and give an indepth description of the theoretical results that underlie them.
Topics covered are
 centralities
 pagerank algorithms
 assortativity, random graphs, giant components
 power laws
 diffusion
 percolation
 spreading phenomena
 community detection
 basic algorithms for network science
 lower bounds and advanced algorithms for polynomialtime problems
 streaming algorithms
 temporal networks
 graph databases
 graph partitioning algorithms.
Course form
Lectures, tutorials, term paper, peer feedback.
A major component of the class is for students to perform their own experimental study on algorithms for the community detection problem.
The results of this study will be presented in the term paper. This term paper will be reviewed by your student peers.
Literature
Recommended:
 A. Barabasi, "Network Science", for free online
 D. Easley, J. Kleinberg, “ Networks, Crowds, and Markets: Reasoning About a Highly Connected World”, for free online
 M.E.J. Newman, "Networks", 2nd edition (2018).
The class is based on parts of all three books. The Newman book is the most comprehensive reference to the material of the class.
