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 4 modules in this course
The primary topics in this part of the specialization are: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees).
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm.
What's included
16 videos4 readings2 assignments
Show info about module content
16 videos•Total 160 minutes
Application: Internet Routing•11 minutes
Application: Sequence Alignment•9 minutes
Introduction to Greedy Algorithms•13 minutes
Application: Optimal Caching•11 minutes
Problem Definition•6 minutes
A Greedy Algorithm•13 minutes
Correctness Proof - Part I•7 minutes
Correctness Proof - Part II•5 minutes
Handling Ties [Advanced - Optional]•7 minutes
MST Problem Definition•11 minutes
Prim's MST Algorithm•8 minutes
Correctness Proof I•15 minutes
Correctness Proof II•8 minutes
Proof of Cut Property [Advanced - Optional]•12 minutes
Fast Implementation I•15 minutes
Fast Implementation II•10 minutes
4 readings•Total 40 minutes
Week 1 Overview•10 minutes
Overview, Resources, and Policies•10 minutes
Lecture slides•10 minutes
Optional Theory Problems (Week 1)•10 minutes
2 assignments•Total 36 minutes
Problem Set #1•30 minutes
Programming Assignment #1•6 minutes
Week 2
Module 2•4 hours to complete
Module details
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).
What's included
16 videos2 readings2 assignments
Show info about module content
16 videos•Total 188 minutes
Kruskal's MST Algorithm•7 minutes
Correctness of Kruskal's Algorithm•9 minutes
Implementing Kruskal's Algorithm via Union-Find I•9 minutes
Implementing Kruskal's Algorithm via Union-Find II•14 minutes
MSTs: State-of-the-Art and Open Questions [Advanced - Optional]•9 minutes
Application to Clustering•12 minutes
Correctness of Clustering Algorithm•10 minutes
Lazy Unions [Advanced - Optional]•10 minutes
Union-by-Rank [Advanced - Optional]•12 minutes
Analysis of Union-by-Rank [Advanced - Optional]•15 minutes
Path Compression [Advanced - Optional]•15 minutes
Path Compression: The Hopcroft-Ullman Analysis I [Advanced - Optional]•9 minutes
Path Compression: The Hopcroft-Ullman Analysis II [Advanced - Optional]•12 minutes
The Ackermann Function [Advanced - Optional]•16 minutes
Path Compression: Tarjan's Analysis I [Advanced - Optional]•14 minutes
Path Compression: Tarjan's Analysis II [Advanced - Optional]•14 minutes
2 readings•Total 20 minutes
Week 2 Overview•10 minutes
Optional Theory Problems (Week 2)•10 minutes
2 assignments•Total 60 minutes
Problem Set #2•30 minutes
Programming Assignment #2•30 minutes
Week 3
Module 3•3 hours to complete
Module details
Huffman codes; introduction to dynamic programming.
What's included
11 videos1 reading2 assignments
Show info about module content
11 videos•Total 105 minutes
Introduction and Motivation•9 minutes
Problem Definition•10 minutes
A Greedy Algorithm•17 minutes
A More Complex Example•4 minutes
Correctness Proof I•10 minutes
Correctness Proof II•13 minutes
Introduction: Weighted Independent Sets in Path Graphs•8 minutes
WIS in Path Graphs: Optimal Substructure•9 minutes
WIS in Path Graphs: A Linear-Time Algorithm•10 minutes
WIS in Path Graphs: A Reconstruction Algorithm•7 minutes
Principles of Dynamic Programming•8 minutes
1 reading•Total 10 minutes
Week 3 Overview•10 minutes
2 assignments•Total 36 minutes
Problem Set #3•30 minutes
Programming Assignment #3•6 minutes
Week 4
Module 4•4 hours to complete
Module details
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.
What's included
10 videos3 readings3 assignments
Show info about module content
10 videos•Total 107 minutes
The Knapsack Problem•10 minutes
A Dynamic Programming Algorithm•10 minutes
Example [Review - Optional]•13 minutes
Optimal Substructure•14 minutes
A Dynamic Programming Algorithm•12 minutes
Problem Definition•12 minutes
Optimal Substructure•10 minutes
Proof of Optimal Substructure•7 minutes
A Dynamic Programming Algorithm I•10 minutes
A Dynamic Programming Algorithm II•9 minutes
3 readings•Total 30 minutes
Week 4 Overview•10 minutes
Optional Theory Problems (Week 4)•10 minutes
Info and FAQ for final exam•10 minutes
3 assignments•Total 90 minutes
Problem Set #4•30 minutes
Programming Assignment #4•30 minutes
Final Exam•30 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.
Instructor
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is an American private research university located in Stanford, California on an 8,180-acre (3,310 ha) campus near Palo Alto, California, United States.
"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.8
1,276 reviews
5 stars
86.83%
4 stars
11.20%
3 stars
1.56%
2 stars
0.15%
1 star
0.23%
Showing 3 of 1276
S
SC
5·
Reviewed on Sep 22, 2017
A more explanatory answer sheet would be helpful. Might need to be secured via limited time login session to avoid leaking on the web.
Y
YA
5·
Reviewed on Feb 3, 2021
This course has wonderful lectures coupled with challenging but rewarding homework problems. It was a wonderful learning experience.
S
SC
5·
Reviewed on Dec 30, 2020
Best (not one of the best) course available on web to learn theoretical algorithms. You will love it. Enjoy new journey and perspect to view and analyze algorithms. Loved it damn!
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.