When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 6 modules in this course
If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on 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 a 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 online course, you will first learn what a graph is and what are some of the most important properties. Then you'll learn several ways to traverse graphs and how you can do useful things while traversing the graph in some order. We will then talk about shortest paths algorithms — from the basic ones to those which open door for 1000000 times faster algorithms used in Google Maps and other navigational services. You will use these algorithms if you choose to work on our Fast Shortest Routes industrial capstone project. 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.
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.
What's included
5 videos3 readings1 programming assignment
Show info about module content
5 videos•Total 43 minutes
Graph Basics•5 minutes
Representing Graphs•10 minutes
Exploring Graphs•15 minutes
Connectivity•6 minutes
Previsit and Postvisit Orderings•8 minutes
3 readings•Total 30 minutes
Welcome•10 minutes
Slides and External References•10 minutes
Slides and External References•10 minutes
1 programming assignment•Total 180 minutes
Programming Assignment 1: Decomposition of Graphs•180 minutes
Decomposition of Graphs 2
Module 2•4 hours to complete
Module details
This week we continue to study graph decomposition algorithms, but now for directed graphs.
Programming Assignment 2: Decomposition of Graphs•180 minutes
Paths in Graphs 1
Module 3•4 hours to complete
Module details
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 earh 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. This week we will study Breadth-First Search algorithm.
What's included
8 videos1 reading1 programming assignment
Show info about module content
8 videos•Total 56 minutes
Applications•3 minutes
Paths and Distances•9 minutes
Breadth-First Search•7 minutes
Breadth-First Search (continued)•8 minutes
Implementation and Analysis•5 minutes
BFS Properties•10 minutes
Correct Distances•4 minutes
Shortest Path Tree•11 minutes
1 reading•Total 10 minutes
Slides and External References•10 minutes
1 programming assignment•Total 180 minutes
Programming Assignment 3: Paths in Graphs•180 minutes
Paths in Graphs 2
Module 4•5 hours to complete
Module details
This week we continue to study Shortest Paths in Graphs. You will learn Dijkstra's Algorithm which can be applied to find the shortest route home from work. You will also learn Bellman-Ford's algorithm which can unexpectedly be applied to choose the optimal way of exchanging currencies. By the end you will be able to find shortest paths efficiently in any Graph.
What's included
13 videos2 readings1 programming assignment
Show info about module content
13 videos•Total 90 minutes
Fastest Route•8 minutes
Naive Algorithm•9 minutes
Dijkstra's Algorithm•5 minutes
Dijkstra Example•5 minutes
Implementation•6 minutes
Proof of Correctness•7 minutes
Analysis•5 minutes
Currency Exchange•6 minutes
Reduction to Shortest Paths•10 minutes
Bellman-Ford Algorithm•6 minutes
Proof of Correctness•6 minutes
Negative Cycles•7 minutes
Infinite Arbitrage•9 minutes
2 readings•Total 20 minutes
Slides and External References•10 minutes
Slides and External References•10 minutes
1 programming assignment•Total 180 minutes
Programming Assignment 4: Paths in Graphs•180 minutes
Minimum Spanning Trees
Module 5•4 hours to complete
Module details
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).
In this module, you will learn Advanced Shortest Paths algorithms that work in practice 1000s (up to 25000) of times faster than the classical Dijkstra's algorithm on real-world road networks and social networks graphs. You will work on a Programming Project based on these algorithms. You will find the shortest paths on the real maps of parts of US and the shortest paths connecting people in the social networks. We encourage you not only to use the ideas from this module's lectures in your implementations, but also to come up with your own ideas for speeding up the algorithm! We encourage you to compete on the forums to see whose implementation is the fastest one :)
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.7
2,272 reviews
5 stars
79.41%
4 stars
16.62%
3 stars
2.59%
2 stars
0.79%
1 star
0.57%
Showing 3 of 2272
A
AN
4·
Reviewed on Feb 27, 2017
Fairly good course. I wish the edge cases for some of the programming assignments had some more discussions. Needed some sifting through the forums while stuck.
E
ED
5·
Reviewed on Apr 15, 2021
This is my favorite course in the specialization, the lectures are really clear and the programming assignments are fun and really help to deeply understand everything
N
NG
5·
Reviewed on Jun 27, 2019
Loved the explanations and proofs. They are so explicitly told. And the discussion forum for you well assorted problems in assignment is really helpful.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.