# Network and Graph Algorithms From Scratch

## Summary

Trees, Graphs and Networks are fundamental data structures that underlie much of the recent developments in data science and computer science algorithms. Technologies and Applications like Social Networks, Cloud and Distributed computing, Cryptocurrencies and Traffic Routing and directions all rely on the proper use of graph concepts.

In this course we will build, step by step, a mini toolkit of network representations and algorithms that will allow students to understand the fundamental ideas and concepts that lie at the base of state of art algorithms (such as PageRank and recommendation systems), technologies (such as graph databases) and tools (like web crawlers).

## Program

**Networks and Graphs**Graph Theory

Network and Graph examples

Types of Graphs

Tree and Graph Representations

**Graph Properties**Degree distributions

Nearest Neighbors

Weight distributions

Degree and Weight Correlations

**Graph Algorithms**Paths and walks on Graphs

Epidemic and Viral Spreading

Graph sampling

Shortest paths and Maximum Spanning Trees

Graph diameter and Friendship Paradox

Random Walks and Markov Chains

**Applications to Empirical Networks**Temporal networks

Multi-layer networks

Bipartite networks and Recommender Systems

Graphs and Optimization