We may earn an affiliate commission when you visit our partners.
Course image
William Fiset

Graph theory is a fundamental branch of mathematics that deals with the study of graphs, networks, and their applications in real-world scenarios. This course is designed to equip you with the necessary skills and knowledge to understand, analyze, and solve problems related to graph theory.

Read more

Graph theory is a fundamental branch of mathematics that deals with the study of graphs, networks, and their applications in real-world scenarios. This course is designed to equip you with the necessary skills and knowledge to understand, analyze, and solve problems related to graph theory.

In this course, you will receive a thorough introduction to graph theory algorithms as they apply to computer science. Throughout the videos, we will cover a range of topics, including how to represent and store graphs on a computer, common graph theory problems encountered in real-world scenarios, famous graph traversal algorithms like DFS and BFS, as well as the lazy and eager versions of Dijkstra's shortest path algorithm. Additionally, we will explore what a topological sort is, how to identify one, and its applications. You will also learn about detecting negative cycles and finding shortest paths using the Bellman-Ford and Floyd-Warshall algorithms, discovering bridges and articulation points in graphs, understanding and detecting strongly connected components using Tarjan's algorithm, and finally, solving the traveling salesman problem with dynamic programming.

Throughout the course, we will use a hands-on approach to teaching, with plenty of examples and exercises to reinforce your understanding of the material. By the end of this course, you will have a deep understanding of graph theory algorithms and be able to apply them to solve real-world problems.

So, whether you are a computer science student, a software developer, or just someone interested in the fascinating world of graph theory, this course is for you. Join today and take your first step towards mastering the art of graph theory algorithms.

Enroll now

What's inside

Learning objectives

  • Storage and representation of graphs (networks) on a computer
  • Common graph theory problems
  • Breadth first search algorithm
  • Depth first search algorithm
  • Various tree algorithms including: the height or a tree, finding the center of a tree, rooting a tree, and etc...
  • Dijkstra's algorithm
  • Topological sort algorithm
  • Shortest/longest path on a acyclic graph
  • Bellman ford's algorithm
  • Floyd-warshall all pairs shortest path algorithm
  • Finding bridges/articulation points
  • Finding strongly connected components (tarjan's)
  • Travelling salesman problem (tsp)
  • How to find the maximum flow of a flow graph
  • Finding bipartite graph matchings
  • Various network flow algorithms including: edmonds-karp, capacity scaling, and dinic's algorithm
  • Kruskal's minimum spanning tree algorithm
  • The lowest common ancestor (lca) problem
  • Show more
  • Show less

Syllabus

Graph theory introduction and basics
Graph Theory Introduction

Graph Theory Introduction Quiz

Problems in Graph Theory
Read more
Depth First Search algorithm
Breadth First Search algorithm
Breadth First Search grid shortest path

DFS & BFS quiz

Graph theory and trees

An introduction to tree algorithms. This video covers how trees are stored and represented on a computer.

Beginner tree algorithms
Rooting a tree
Finding tree center(s)
Identifying Isomorphic Trees
Identifying Isomorphic Trees Source Code

Tree quiz

Classic graph theory algorithms
Topological sort algorithm

Topsort quiz

Shortest/longest path on a Directed Acyclic Graph (DAG)
Dijkstra's shortest path algorithm
Dijkstra's shortest path algorithm | source code
Bellman-Ford algorithm
Floyd-Warshall all pairs shortest path algorithm
Floyd-Warshall all pairs shortest path algorithm | source code

Shortest path quiz

Bridges & Articulation points
Bridges & Articulation points | source code
Tarjan's strongly connected components algorithm (UPDATED)
Tarjan's strongly connected components algorithm | source code
Travelling Salesman problem
Travelling Salesman problem | source code
Existence of Eulerian path and circuits
Eulerian path algorithm
Eulerian path source code

Eulerian paths and circuits quiz

Network flow topics such as maximum flow and bipartite matching
Max Flow Ford Fulkerson | Network Flow
Max Flow Ford Fulkerson | source code
Unweighted bipartite matching | Network flow
Bipartite Matching | The mice and owls problem | Network Flow
Bipartite Matching | The elementary math problem | Network Flow

Network Flow Quiz #1

Edmonds Karp | Network Flow
Edmonds Karp | Network Flow | Source Code
Capacity Scaling | Network Flow
Capacity Scaling | Network Flow | Source Code
Dinic's Algorithm | Network Flow
Dinic's Algorithm | Network Flow | Source Code
Additional videos related to graph theory
Union Find data structure
Kruskal's Minimum Spanning Tree Algorithm
Prim's Minimum Spanning Tree (lazy version)
Prim's Minimum Spanning Tree (eager version)
Prim's Minimum Spanning Tree source code

This is the sparse table data structure from my DS video series. We need to understand the sparse table DS to understand the solution to the Lowest Common Ancestor (LCA) problem

Sparse Table Source Code
Lowest Common Ancestor (LCA) problem
Bonus topics quiz #1

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides hands-on learning with plenty of examples and exercises to strengthen understanding
Covers a comprehensive range of graph theory algorithms, including BFS, DFS, Dijkstra's algorithm, topological sort, and more
Introduces graph theory algorithms as they apply to computer science, making it relevant for software developers and computer science students
Led by instructor William Fiset, who is recognized for his expertise in graph theory algorithms
Suitable for both beginners looking to build a foundation and intermediate learners seeking to strengthen their knowledge
May require learners to have some familiarity with basic programming concepts

Save this course

Save Graph Theory Algorithms to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Graph Theory Algorithms with these activities:
Find a mentor who can provide guidance on graph theory
Finding a mentor who can provide guidance on graph theory will help you learn more about the subject and develop your skills.
Browse courses on Mentorship
Show steps
  • Ask your friends, family, or colleagues if they know any graph theory experts
  • Attend graph theory meetups or conferences
  • Contact graph theory professors or researchers
Review the prerequisites for this course
Refreshing your knowledge of the prerequisites for this course will help you build a stronger foundation and succeed in this course.
Show steps
  • Review your notes from previous courses
  • Take practice quizzes or exams
  • Read relevant textbooks or articles
Follow a graph theory tutorial
Following a graph theory tutorial will help you learn the basics of graph theory and how to apply graph theory algorithms to solve problems.
Show steps
  • Search for a graph theory tutorial
  • Choose a tutorial and follow the steps
  • Complete the exercises in the tutorial
Five other activities
Expand to see all activities and additional details
Show all eight activities
Read 'Graph Theory' by Diestel
This book provides a comprehensive introduction to graph theory, covering the fundamentals as well as more advanced topics such as graph colorings and extremal graph theory.
Show steps
  • Read the introduction and chapter 1
  • Work through the exercises in chapter 1
  • Read the remaining chapters
  • Work through the exercises in the remaining chapters
Solve graph theory problems on LeetCode
Solving graph theory problems on LeetCode will help you practice your skills and improve your understanding of the algorithms covered in this course.
Show steps
  • Create a LeetCode account
  • Search for graph theory problems
  • Choose a problem and solve it
  • Submit your solution and review the feedback
Participate in a graph theory competition
Participating in a graph theory competition will help you test your skills and knowledge against other students and professionals.
Browse courses on Problem Solving
Show steps
  • Find a graph theory competition
  • Register for the competition
  • Prepare for the competition
  • Compete in the competition
Write a blog post about a graph theory algorithm
Writing a blog post about a graph theory algorithm will help you solidify your understanding of the algorithm and improve your communication skills.
Browse courses on Technical Writing
Show steps
  • Choose a graph theory algorithm to write about
  • Research the algorithm
  • Write a draft of your blog post
  • Edit and revise your blog post
  • Publish your blog post
Volunteer at a local organization that uses graph theory
Volunteering at a local organization that uses graph theory will help you apply your skills to real-world problems and make a difference in your community.
Browse courses on Graph Theory
Show steps
  • Search for local organizations that use graph theory
  • Contact the organization and ask about volunteer opportunities
  • Attend a volunteer orientation
  • Start volunteering

Career center

Learners who complete Graph Theory Algorithms will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser