Graph algorithms show up in many parts of coding work. You see them in maps, social apps, and build tools. You also see them in many contest tasks. This course helps you learn these ideas with clear steps and hands-on practice. You work with C++ as you learn.
You will see how common tools use graphs. These tools include map apps, social networks, image tasks, and routing systems. You also learn how to apply the same ideas to contest problems.
The course gives you guided lessons and coding tasks. You also get more than 80 problems to try. Each problem helps you check what you learned and build skill through practice.
The course is taught by Prateek Narang and Apaar Kamal. They are software engineers at Google and have taught many students for years. The videos use clear words and simple steps. They mix theory with code so you can follow along and build each idea with confidence.
Course Overview
You start with the basics. You learn how to store a graph in code and how to explore it. Then you move to common tasks like finding paths, checking cycles, and working with tree data. The course has two main parts.
Part I: Core Concepts
Graph storage and formats
BFS and DFS
Cycle checks in weighted and unweighted graphs
Topological order and DAGs
Disjoint Set Union, path compression, union by rank
Minimum Spanning Trees with Prim and Kruskal
Shortest paths with BFS, Dijkstra, Bellman-Ford, and Floyd-Warshall
Travelling Salesman and the min-cost Hamiltonian cycle
Part II: Advanced Topics
Flood fill
Multisource BFS
DFS backedges
SCCs and Kosaraju
Euler tour
Lowest Common Ancestor
Trees
Articulation points and bridges
Network flow
Part II is best for students who want to take part in contests or solve harder graph tasks. If you want a strong base for everyday coding work, Part I may be enough.