
Explore the motivation and history of graph analytics, tracing Konigsberg's seven bridges to graph databases and NoSQL, and learn how nodes and edges encode relationships.
Define graphs by nodes and edges, where nodes denote elements like cities or computers, and learn adjacency matrix, edge list, adjacency map, plus terms label, path, properties, and subgraph.
Define bipartite and mono partite graphs, their degrees, and connectivity. Compare network types like small-world and scale-free.
Explore depth first search as a graph-based maze solver, modeling mazes with start and end nodes and edges, and implement recursive or stack traversal with backtracking to reach the end.
Demonstrate an iterative depth-first search on a maize graph using a stack. Visit nodes, mark them, backtrack by popping from the stack, and explore unvisited neighbors to reach the end.
Apply iterative depth first search with a stack and visited list to reach a node, pushing unvisited neighbors and popping when stuck. Explore DFS drawbacks and breath for search.
Explore breadth first search on graphs, using a queue to expand the frontier level by level, revealing the shortest path in unweighted graphs.
Explore how Dijkstra's algorithm finds cheapest path in a weighted graph by relaxation and a min-heap priority queue; note its limits with negative weights and Belman Ford as alternative.
Study Eulerian paths and circuits, determine existence via node degrees in undirected and directed graphs, and apply Hierholzer's algorithm to build the circuit.
Explore depth-first and breadth-first search, Dexter's algorithm with a mean heap and relaxation, and Belmont Ford for weighted graphs; identify nodes and edges in real-world systems.
Explore how to evaluate nodes and graphs for traversal, assess connectivity, and identify vital edges or nodes in networks, including bridges and roads in transportation networks.
Track a depth-first search on an undirected graph by recording visitation order and marking edges as used, unused, and back edges, forming a directed depth-first search tree.
Explore how depth-first search reveals weak points in a graph by building a DFS tree and using the lowest level values to identify articulation points.
Analyze graph connectivity by measuring how many nodes or edges must be removed to disconnect. Identify edge and node connectivity, and strongly connected components in directed graphs.
Master Tarjan's algorithm to find strongly connected components in directed graphs by performing a depth-first search, using a stack and low values to group nodes.
Explore centrality in graphs by comparing how nodes rank based on position, with metrics like degree, betweenness, closeness, and eigenvector centrality.
Master degree centrality, the simplest centrality measure, by calculating node degrees from adjacency matrices. Distinguish in-degree and out-degree in directed graphs and view degree centrality as descriptive statistics.
Closeness centrality measures how quickly a node can influence the entire network, computed as the reciprocal of the sum of distances to all nodes, with a normalized form.
Explore betweenness centrality as a gatekeeper metric in graphs, using shortest paths and counts of paths that go through a node to assess how removing a node slows information spread.
Compute betweenness centrality by counting shortest paths through nodes using a two-phase algorithm: a breadth-first search to identify predecessors, then recursive backtracking to accumulate path counts in directed, unweighted graphs.
Explore graph connectivity with node and edge connectivity, articulation points, bridges, and centrality measures like degree, closeness, and betweenness, plus strongly connected components and shortest paths.
Explore density in graphs by comparing the actual number of edges to the maximum possible, derive the maximum-edge formula for undirected graphs, and compare to directed connectivity and handshakes.
Explore minimum spanning trees that connect all vertices with minimal total edge weight in undirected graphs, and how removing the heaviest MST edge partitions a graph into communities.
Apply union find to build a minimum spanning tree by placing each node in its own set, using union operations as edges are processed in increasing weight order.
Identify a minimum spanning tree by selecting the smallest edges with Cresco's algorithm, using a union-find disjoint-set structure and a min-heap to avoid loops and build the spanning tree.
Learn modularity as a measure of graph clustering by comparing the original graph to a configuration model, using the delta function to count intra‑community edges and the expected value.
Discover the Louvain method for extracting communities in large graphs, using a two-phase, search-and-consolidate approach to maximize modularity and build hierarchical clusters.
Explore density, modularity, and the minimum spanning tree, found with Crystal's algorithm, to identify clusters. Conclude with the Loven method for hierarchical clustering and encourage exploring other clustering approaches.
What is a graph?
A Graph is a collection of Nodes and Edges. The nodes represent entities, such as people, computers in a network, or molecules in a chemical reaction. The edges represent the relationships between them such as friendships (or frenemies), direct connections, or constituents in a reaction.
Graph databases are online systems that let people manage graph data. Unlike older databases, priority is given to relationships between entities. This means you don’t have to mess around with complicated keys and joins to analyze large portions of a system.
Why are graph databases important?
Graphs are growing in prevalence. Every time you visit Facebook, you’re getting information on first, second, and even third-degree connections to you and your friends.
The biggest tech companies around leverage graph data and analytics to understand how users relate to each other, and with the content on their site.
What does this course teach?
This course will provide an intuition-first approach to understanding, analyzing, and manipulating graph data.
I’ve picked out only the most important algorithms, and build solutions from the ground up using real world examples
Is this course right for me?
This course is intended for students who want to prepare for the workforce, professionals who want to learn more about graph data and keep abreast of new technology, and anyone with a curios mind and desire to learn.