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

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
Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms (edX)

Learn more complex tree data structures, AVL and (2-4) trees. Investigate the balancing techniques found in both tree types. Implement these techniques in AVL operations. Explore sorting algorithms with simple iterative sorts, followed by Divide and Conquer algorithms. Use the course visualizations to understand the performance.

Self Paced
Self-Paced
Algoritmos y Programación en R (edX) EdX
Tecnológico de Monterrey,TecdeMonterreyX

Algoritmos y Programación en R (edX)

Aprende los fundamentos del pensamiento algorítmico, estructuras de datos y los principios básicos de programación con aplicación a los negocios. Los algoritmos pueden ser utilizados para la solución de problemas de negocio. En este curso aprenderás los conceptos básicos de algoritmos y el manejo de estructuras de datos.

Self Paced
Self-Paced
Data Structures & Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps (edX) EdX
Georgia Institute of Technology,GTx

Data Structures & Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps (edX)

Become familiar with nonlinear and hierarchical data structures. Study various tree structures: Binary Trees, BSTs and Heaps. Understand tree operations and algorithms. Learn and implement HashMaps that utilize key-value pairs to store data. Explore probabilistic data structures like SkipLists. Course tools help visualize the structures and performance.

Self Paced
Self-Paced
Dynamic Programming: Applications In Machine Learning and Genomics (edX) EdX
University of California, San Diego,UC San DiegoX

Dynamic Programming: Applications In Machine Learning and Genomics (edX)

Learn how dynamic programming and Hidden Markov Models can be used to compare genetic strings and uncover evolution. If you look at two genes that serve the same purpose in two different species, how can you rigorously compare these genes in order to see how they have evolved away from each other?

Self Paced
Self-Paced
Algorithms and Data Structures Capstone (edX) EdX
University of California, San Diego,UC San DiegoX

Algorithms and Data Structures Capstone (edX)

Synthesize your knowledge of algorithms and biology to build your own software for solving a biological challenge. Building a fully-fledged algorithm to assemble genomes from DNA fragments on a real dataset is an enormous challenge with major demand in the multi-billion dollar biotech industry. In this capstone project, we will take the training wheels off and let you design your own optimized software program for genome sequencing.

Self Paced
Self-Paced
Computing in Python IV: Objects & Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python IV: Objects & Algorithms (edX)

Learn about recursion, search and sort algorithms, and object-oriented programming in Python. Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

Self Paced
Self-Paced
The Beauty and Joy of Computing - AP® CS Principles Part 2 (edX) EdX
University of California, Berkeley,BerkeleyX

The Beauty and Joy of Computing - AP® CS Principles Part 2 (edX)

A computer science principles course for anyone who wants to learn how to translate ideas into code. Discover the big ideas and thinking practices in computer science plus learn how to code using one of the friendliest programming languages, Snap! (based on Scratch).

No sessions available
13-24 Weeks