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 5 modules in this course
We invite you to a fascinating journey into Graph Theory — an area which connects the elegance of painting and the rigor of mathematics; is simple, but not unsophisticated. Graph Theory gives us, both an easy way to pictorially represent many major mathematical results, and insights into the deep theories behind them.
In this online course, among other intriguing applications, we will see how GPS systems find shortest routes, how engineers design integrated circuits, how biologists assemble genomes, why a political map can always be colored using a few colors. We will study Ramsey Theory which proves that in a large system, complete disorder is impossible!
By the end of the course, we will implement an algorithm which finds an optimal assignment of students to schools. This algorithm, developed by David Gale and Lloyd S. Shapley, was later recognized by the conferral of Nobel Prize in Economics.
As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.
What are graphs? What do we need them for? This week we'll see that a graph is a simple pictorial way to represent almost any relations between objects. We'll see that we use graph applications daily! We'll learn what graphs are, when and how to use them, how to draw graphs, and we'll also see the most important graph classes. We start off with two interactive puzzles. While they may be hard, they demonstrate the power of graph theory very well! If you don't find these puzzles easy, please see the videos and reading materials after them.
What's included
14 videos6 readings5 assignments1 ungraded lab
Show info about module content
14 videos•Total 52 minutes
Airlines Graph•1 minute
Knight Transposition•2 minutes
Seven Bridges of Königsberg•4 minutes
What is a Graph?•7 minutes
Graph Examples•2 minutes
Graph Applications•3 minutes
Vertex Degree•4 minutes
Paths•5 minutes
Connectivity•3 minutes
Directed Graphs•3 minutes
Weighted Graphs•2 minutes
Paths, Cycles and Complete Graphs•3 minutes
Trees•7 minutes
Bipartite Graphs•4 minutes
6 readings•Total 24 minutes
Slides•1 minute
Slides•1 minute
Slides•1 minute
Slides•1 minute
Glossary•10 minutes
Hint for Guarini's Puzzle•10 minutes
5 assignments•Total 110 minutes
Puzzle: Make a tree•30 minutes
Puzzle: Guarini's Puzzle•30 minutes
Puzzle: Bridges of Königsberg•30 minutes
Definitions•10 minutes
Graph Types•10 minutes
1 ungraded lab•Total 15 minutes
Graph Drawing Example•15 minutes
Cycles
Module 2•6 hours to complete
Module details
We’ll consider connected components of a graph and how they can be used to implement a simple program for solving the Guarini puzzle and for proving optimality of a certain protocol. We’ll see how to find a valid ordering of a to-do list or project dependency graph. Finally, we’ll figure out the dramatic difference between seemingly similar Eulerian cycles and Hamiltonian cycles, and we’ll see how they are used in genome assembly!
What's included
12 videos4 readings7 assignments5 ungraded labs
Show info about module content
12 videos•Total 89 minutes
Handshaking Lemma•7 minutes
Total Degree•5 minutes
Connected Components•7 minutes
Guarini Puzzle: Code•7 minutes
Lower Bound•6 minutes
The Heaviest Stone•7 minutes
Directed Acyclic Graphs•10 minutes
Strongly Connected Components•8 minutes
Eulerian Cycles•4 minutes
Eulerian Cycles: Criteria•12 minutes
Hamiltonian Cycles•4 minutes
Genome Assembly•13 minutes
4 readings•Total 13 minutes
Slides•1 minute
Slides•1 minute
Slides•1 minute
Glossary•10 minutes
7 assignments•Total 150 minutes
Puzzle: Connect Points by Segments•30 minutes
Computing the Number of Edges•10 minutes
Number of Connected Components•10 minutes
Number of Strongly Connected Components•10 minutes
Eulerian Cycles•30 minutes
Puzzle: Plow Truck•30 minutes
Puzzle: Hamiltonian Cycle•30 minutes
5 ungraded labs•Total 100 minutes
Connected Components•5 minutes
Guarini Puzzle Solver•60 minutes
Topological Sorting•10 minutes
Strongly Connected Components•10 minutes
Eulerian Cycles•15 minutes
Graph Classes
Module 3•3 hours to complete
Module details
This week we will study three main graph classes: trees, bipartite graphs, and planar graphs. We'll define minimum spanning trees, and then develop an algorithm which finds the cheapest way to connect arbitrary cities. We'll study matchings in bipartite graphs, and see when a set of jobs can be filled by applicants. We'll also learn what planar graphs are, and see when subway stations can be connected without intersections. Stay tuned for more interactive puzzles!
What's included
11 videos4 readings6 assignments2 ungraded labs
Show info about module content
11 videos•Total 55 minutes
Road Repair•4 minutes
Trees•8 minutes
Minimum Spanning Tree•6 minutes
Job Assignment•4 minutes
Bipartite Graphs•5 minutes
Matchings•4 minutes
Hall's Theorem•8 minutes
Subway Lines•1 minute
Planar Graphs•3 minutes
Euler's Formula•4 minutes
Applications of Euler's Formula•7 minutes
4 readings•Total 13 minutes
Slides•1 minute
Slides•1 minute
Slides•1 minute
Glossary•10 minutes
6 assignments•Total 120 minutes
Puzzle: Road Repair•30 minutes
Trees•10 minutes
Puzzle: Job Assignment•30 minutes
Bipartite Graphs•10 minutes
Puzzle: Subway Lines•30 minutes
Planar Graphs•10 minutes
2 ungraded labs•Total 20 minutes
Minimum Spanning Tree•10 minutes
Maximum Matching•10 minutes
Graph Parameters
Module 4•4 hours to complete
Module details
We'll focus on the graph parameters and related problems. First, we'll define graph colorings, and see why political maps can be colored in just four colors. Then we will see how cliques and independent sets are related in graphs. Using these notions, we'll prove Ramsey Theorem which states that in a large system, complete disorder is impossible! Finally, we'll study vertex covers, and learn how to find the minimum number of computers which control all network connections.
What's included
14 videos5 readings9 assignments1 ungraded lab
Show info about module content
14 videos•Total 52 minutes
Map Coloring•4 minutes
Graph Coloring•3 minutes
Bounds on the Chromatic Number•4 minutes
Applications•3 minutes
Graph Cliques•4 minutes
Cliques and Independent Sets•3 minutes
Connections to Coloring•2 minutes
Mantel's Theorem•5 minutes
Balanced Graphs•3 minutes
Ramsey Numbers•2 minutes
Existence of Ramsey Numbers•6 minutes
Antivirus System•2 minutes
Vertex Covers•4 minutes
König's Theorem•8 minutes
5 readings•Total 14 minutes
Slides•1 minute
Slides•1 minute
Slides•1 minute
Slides•1 minute
Glossary•10 minutes
9 assignments•Total 190 minutes
Maximum number of edges in a triangle-free graph•30 minutes
Puzzle: Map Coloring•30 minutes
Graph Coloring •10 minutes
Puzzle: Graph Cliques•30 minutes
Cliques and Independent Sets•10 minutes
Puzzle: Balanced Graphs•30 minutes
Ramsey Numbers•10 minutes
Puzzle: Antivirus System•30 minutes
Vertex Covers•10 minutes
1 ungraded lab•Total 10 minutes
Maximum Clique•10 minutes
Flows and Matchings
Module 5•4 hours to complete
Module details
This week we'll develop an algorithm that finds the maximum amount of water which can be routed in a given water supply network. This algorithm is also used in practice for optimization of road traffic and airline scheduling. We'll see how flows in networks are related to matchings in bipartite graphs. We'll then develop an algorithm which finds stable matchings in bipartite graphs. This algorithm solves the problem of matching students with schools, doctors with hospitals, and organ donors with patients. By the end of this week, we'll implement an algorithm which won the Nobel Prize in Economics!
What's included
13 videos6 readings4 assignments
Show info about module content
13 videos•Total 99 minutes
An Example•7 minutes
The Framework•8 minutes
Ford and Fulkerson: Proof•12 minutes
Hall's theorem•10 minutes
What Else?•9 minutes
Why Stable Matchings?•6 minutes
Mathematics and Real Life•5 minutes
Basic Examples•7 minutes
Looking For a Stable Matching•6 minutes
Gale-Shapley Algorithm•7 minutes
Correctness Proof•6 minutes
Why The Algorithm Is Unfair•8 minutes
Why the Algorithm is Very Unfair•9 minutes
6 readings•Total 34 minutes
Slides•1 minute
Slides•1 minute
The algorithm and its properties (alternative exposition)•10 minutes
Gale-Shapley Algorithm•2 minutes
Project Description•10 minutes
Glossary•10 minutes
4 assignments•Total 120 minutes
Constant Degree Bipartite Graphs•30 minutes
Algorithm•60 minutes
Choose an Augmenting Path Carefully•20 minutes
Base Cases•10 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
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.5
1,070 reviews
5 stars
66.91%
4 stars
23.17%
3 stars
6.44%
2 stars
2.14%
1 star
1.30%
Showing 3 of 1070
M
MI
5·
Reviewed on Oct 11, 2020
Great, informative courses. I liked that they are NOT focusing much on Python. I am more confident now with Graphs and its application
A
AT
5·
Reviewed on Nov 24, 2017
This course is really good. If someone has interest in graph theory or he wants to learn it, then this course is definitely a good start.
W
WL
4·
Reviewed on Mar 9, 2019
The lecturer well explained the course materials. But the assignments are too easy to complete, it does not tease your brain as exercise, and the week 5 is a bit hard to follow
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.