# Graph theory algorithms visualized

## Description

This Graph theory algorithms will teach students the fundamental concepts and algorithms of graph theory with real life examples and eye-appealing visualizations. The course will cover topics such as graph representation, graph traversal, topological sort, shortest paths, minimum spanning trees, graph coloring… With a total of more than 20 covered algorithms.

Discussed algorithms will be implemented in detail by using a programming language to give a better understanding for students. Captions, practice problems, quizzes, slides, and source code will also be here to make the learning experience way better.

By the end of the course, students will have a strong understanding of graph algorithms and be able to apply their knowledge to solve problems in computer science, mathematics, and beyond.

This course is ideal for students who are looking to pursue careers in computer science, mathematics, or related fields, as well as for professionals who want to expand their knowledge of graph theory algorithms.

Covered algorithms:

• Graph traversal:
• Depth-first search
• Topological sorting:
• Depth-first search based topological sort
• Breadth-first search based topological sort (Kahn’s algorithm)
• Shortest path:
• Dijkstra’s algorithm
• Bellman-Ford algorithm
• Floyd-Warshall algorithm
• Johnson’s algorithm
• Shortest path for unweighted graphs algorithm
• Shortest path for directed acyclic graphs (1st approach) algorithm
• Shortest path for directed acyclic graphs (2nd approach) algorithm
• Trees and minimum spanning trees:
• Spanning tree algorithm
• Graph to out-tree algorithm
• Prim’s algorithm
• Kruskal’s algorithm
• Eulerian/Hamiltonian paths and cycles:
• Hierholzer’s algorithm
• Hamiltonian cycle backtracking algorithm
• Graph coloring:
• 2-colorability algorithm
• k-colorability backtracking algorithm
• Greedy coloring algorithm
• Welsh-Powell heuristic
• DSatur heuristic

## Who this course is for:

• Computer science students
• Data science beginners
• Software development beginners

## Requirements

• Basic programming knowledge
• Algorithmic techniques knowledge is preferred (recursion, backtracking, dynamic programming…)
• Data structures knowledge is preferred (hash table, queue, stack, set, heap…)

Last Updated 2/2023