EdX

Graph Algorithms (edX)

Graph Algorithms (edX)

Learn how to use algorithms to explore graphs, compute shortest distance, min spanning tree, and connected components. If you have ever used a navigation service to find the optimal route and estimate time to destination, you've used algorithms on graphs.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Graphs arise in various real-world situations, as there are road networks, water and electricity supply networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs.
In this course, part of the Algorithms and Data Structures MicroMasters program, you will learn what a graph is and its most important properties. You’ll learn several ways to traverse graphs and how you can do useful things while traversing the graph in some order. We will also talk about shortest paths algorithms. We will finish with minimum spanning trees, which are used to plan road, telephone and computer networks and also find applications in clustering and approximate algorithms.

What you'll learn

  • Graph exploration and decomposition into connected components
  • Shortest paths algorithms, including breadth-first search, Dijkstra’s algorithm and Bellman-Ford algorithm
  • Minimum spanning tree algorithms

Syllabus

Modules 1 and 2: Decomposition of Graphs
Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders hot in Facebook, you're going to work with graphs and algorithms on graphs. In this module, you will learn ways to represent a graph as well as basic algorithms for decomposing graphs into parts. In the programming assignment of this module, you will apply the algorithms that you’ve learned to implement efficient programs for exploring mazes, analyzing Computer Science curriculum, and analyzing road networks. In the first week of the module, we focus on undirected graphs.

Modules 3 and 4: Shortest Paths
In this module you will study algorithms for finding Shortest Paths in Graphs. These algorithms have lots of applications. When you launch a navigation app on your smartphone like Google Maps or Yandex.Navi, it uses these algorithms to find you the fastest route from work to home, from home to school, etc. When you search for airplane tickets, these algorithms are used to find a route with the minimum number of plane changes. Unexpectedly, these algorithms can also be used to determine the optimal way to do currency exchange, sometimes allowing to earn huge profit! We will cover all these applications, and you will learn Breadth-First Search, Dijkstra's Algorithm and Bellman-Ford Algorithm. These algorithms are efficient and lay the foundation for even more efficient algorithms which you will learn and implement in the Shortest Paths Capstone Project to find best routes on real maps of cities and countries, find distances between people in Social Networks. In the end you will be able to find Shortest Paths efficiently in any Graph.

Module 5: Minimum Spanning Trees
In this module, we study the minimum spanning tree problem. We will cover two elegant greedy algorithms for this problem: the first one is due to Kruskal and uses the disjoint sets data structure, the second one is due to Prim and uses the priority queue data structure. In the programming assignment for this module you will be computing an optimal way of building roads between cities and an optimal way of partitioning a given set of objects into clusters (a fundamental problem in data mining).

Module 6: Flows in Networks
Network flows show up in many real-world situations in which a good needs to be transported across a network with limited capacity. You can see it when shipping goods across highways and routing packets across the internet. In this unit, we will discuss the mathematical underpinnings of network flows and some important flow algorithms. We will also give some surprising examples on seemingly unrelated problems that can be solved with our knowledge of network flows.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Implementation of Data Structures (edX) EdX
IIT Bombay,IITBombayX

Implementation of Data Structures (edX)

Learn how to write correct and efficient data structures manipulation using existing standard template library (STL) of C++. Get introduced to the power of STL and make your code more solid, reusable, and robust. In this Computer Science course, you will learn about implementation of all major abstract data structures using object-oriented programming paradigm of C++.

This course is archived
5-12 Weeks
Aplicaciones de la Teoría de Grafos a la vida real II (edX) EdX
Universitat Politècnica de València,UPValenciaX

Aplicaciones de la Teoría de Grafos a la vida real II (edX)

Aprenderemos a modelizar problemas del mundo real mediante su representación con grafos y a resolverlos mediante sus algoritmos asociados. Este curso trata la Teoría de Grafos desde el punto de vista de la modelización, lo que nos permitirá con posterioridad resolver muchos problemas de diversa índole. Presentaremos ejemplos de los distintos problemas en un contexto real, analizaremos la representación de éstos mediante grafos y veremos los algoritmos necesarios para resolverlos.

Self Paced
Self-Paced
AP Computer Science A: Java Programming Polymorphism and Advanced Data Structures (edX) EdX
Purdue University,PurdueX

AP Computer Science A: Java Programming Polymorphism and Advanced Data Structures (edX)

AP Computer Science A from Purdue University. This computer science course covers advanced OOP strategies, including polymorphism, abstract classes, super keyword, exceptions, generics, sorting and searching algorithms. This course is for anyone interested in taking a first-level computer-programming course, particularly those who attend a school that does not provide a similar class.

This course is archived
5-12 Weeks
Sparse Representations in Signal and Image Processing: Fundamentals (edX) EdX
IsraelX

Sparse Representations in Signal and Image Processing: Fundamentals (edX)

Learn about the field of sparse representations by understanding its fundamental theoretical and algorithmic foundations. This course introduces the fundamentals of the field of sparse representations, starting with its theoretical concepts, and systematically presenting its key achievements. We will touch on theory and numerical algorithms.

Self Paced
Self-Paced
Data Structures and Algorithm Design Part I | 数据结构与算法设计(上) (edX) EdX
Tsinghua University,TsinghuaX

Data Structures and Algorithm Design Part I | 数据结构与算法设计(上) (edX)

Learn the basics of data structures and methods to design algorithms and analyze their performance. 本课程旨在围绕各类数据结构的设计与实现,揭示其中的规律原理与方法技巧;同时针对算法设计及其性能分析,使学生了解并掌握主要的套路与手段。

Self Paced
Self-Paced
Autonomous Mobile Robots (edX) EdX
ETH Zurich,ETHx

Autonomous Mobile Robots (edX)

Basic concepts and algorithms for locomotion, perception, and intelligent navigation. Robots are rapidly evolving from factory workhorses, which are physically bound to their work-cells, to increasingly complex machines capable of performing challenging tasks in our daily environment. The objective of this course is to provide the basic concepts and algorithms required to develop mobile robots that act autonomously in complex environments.

Self Paced
Self-Paced