Coursera
Explore
  • Browse
  • Search
  • For Enterprise
  • Log In
  • Sign Up

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

OverviewSyllabusFAQsCreatorsPricingRatings and Reviews

HomeComputer ScienceAlgorithms

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

Stanford University

About 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).

Who is this class for: Learners with at least a little bit of programming experience who want to learn the essentials of algorithms. In a University computer science curriculum, this course is typically taken in the third year.


Created by:  Stanford University
Stanford University

  • Tim Roughgarden

    Taught by:  Tim Roughgarden, Professor

    Computer Science
Basic Info
Course 3 of 4 in the Algorithms Specialization
LevelIntermediate
Commitment4 weeks of study, 4-8 hours/week
Language
English
How To PassPass all graded assignments to complete the course.
User Ratings
4.9 stars
Average User Rating 4.9See what learners said
Syllabus
WEEK 1
Week 1
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm.
16 videos, 4 readings
  1. Reading: Week 1 Overview
  2. Reading: Overview, Resources, and Policies
  3. Reading: Lecture slides
  4. Video: Application: Internet Routing
  5. Video: Application: Sequence Alignment
  6. Video: Introduction to Greedy Algorithms
  7. Video: Application: Optimal Caching
  8. Video: Problem Definition
  9. Video: A Greedy Algorithm
  10. Video: Correctness Proof - Part I
  11. Video: Correctness Proof - Part II
  12. Video: Handling Ties [Advanced - Optional]
  13. Video: MST Problem Definition
  14. Video: Prim's MST Algorithm
  15. Video: Correctness Proof I
  16. Video: Correctness Proof II
  17. Video: Proof of Cut Property [Advanced - Optional]
  18. Video: Fast Implementation I
  19. Video: Fast Implementation II
  20. Reading: Optional Theory Problems (Week 1)
Graded: Problem Set #1
Graded: Programming Assignment #1
WEEK 2
Week 2
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).
16 videos, 2 readings
  1. Reading: Week 2 Overview
  2. Video: Kruskal's MST Algorithm
  3. Video: Correctness of Kruskal's Algorithm
  4. Video: Implementing Kruskal's Algorithm via Union-Find I
  5. Video: Implementing Kruskal's Algorithm via Union-Find II
  6. Video: MSTs: State-of-the-Art and Open Questions [Advanced - Optional]
  7. Video: Application to Clustering
  8. Video: Correctness of Clustering Algorithm
  9. Video: Lazy Unions [Advanced - Optional]
  10. Video: Union-by-Rank [Advanced - Optional]
  11. Video: Analysis of Union-by-Rank [Advanced - Optional]
  12. Video: Path Compression [Advanced - Optional]
  13. Video: Path Compression: The Hopcroft-Ullman Analysis I [Advanced - Optional]
  14. Video: Path Compression: The Hopcroft-Ullman Analysis II [Advanced - Optional]
  15. Video: The Ackermann Function [Advanced - Optional]
  16. Video: Path Compression: Tarjan's Analysis I [Advanced - Optional]
  17. Video: Path Compression: Tarjan's Analysis II [Advanced - Optional]
  18. Reading: Optional Theory Problems (Week 2)
Graded: Problem Set #2
Graded: Programming Assignment #2
WEEK 3
Week 3
Huffman codes; introduction to dynamic programming.
11 videos, 1 reading
  1. Reading: Week 3 Overview
  2. Video: Introduction and Motivation
  3. Video: Problem Definition
  4. Video: A Greedy Algorithm
  5. Video: A More Complex Example
  6. Video: Correctness Proof I
  7. Video: Correctness Proof II
  8. Video: Introduction: Weighted Independent Sets in Path Graphs
  9. Video: WIS in Path Graphs: Optimal Substructure
  10. Video: WIS in Path Graphs: A Linear-Time Algorithm
  11. Video: WIS in Path Graphs: A Reconstruction Algorithm
  12. Video: Principles of Dynamic Programming
Graded: Problem Set #3
Graded: Programming Assignment #3
WEEK 4
Week 4
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.
10 videos, 3 readings
  1. Reading: Week 4 Overview
  2. Video: The Knapsack Problem
  3. Video: A Dynamic Programming Algorithm
  4. Video: Example [Review - Optional]
  5. Video: Optimal Substructure
  6. Video: A Dynamic Programming Algorithm
  7. Video: Problem Definition
  8. Video: Optimal Substructure
  9. Video: Proof of Optimal Substructure
  10. Video: A Dynamic Programming Algorithm I
  11. Video: A Dynamic Programming Algorithm II
  12. Reading: Optional Theory Problems (Week 4)
  13. Reading: Info and FAQ for final exam
Graded: Problem Set #4
Graded: Programming Assignment #4
Graded: Final Exam

FAQs
How It Works
Coursework
Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates
Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

Creators
Stanford University
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.
Pricing
Purchase Course
Access to course materials

Available

Access to graded materials

Available

Receive a final grade

Available

Earn a shareable Course Certificate

Available

Ratings and Reviews
Rated 4.9 out of 5 of 412 ratings
luiz Cunha

Tim Roughgarden manages to turn a dry topic like "Algos" into a sexy hot one!!

Lin Myat Ko

Very difficult! That's what heroes do.

DC

Excellent Course. I really enjoyed it. Stretched my imagination and analytical capacity to new frontiers. The problems studied during the course stimulate you to learn more about new algorithms and coding, There's so much more to learn now. Many thanks to Professor Roughgarden and his team for making this available. Keep the great work!

RL

I thought this course was kind of harder than the 2 previous one in the specialization (mainly the problems sets which require way more thinking)

It's a very good quality course to strenghten the basics, but in depth.



You May Also Like
Stanford University
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
1 course
Stanford University
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
View course
Stanford University
Graph Search, Shortest Paths, and Data Structures
1 course
Stanford University
Graph Search, Shortest Paths, and Data Structures
View course
University of California, San Diego, National Research University Higher School of Economics
Algorithms on Strings
1 course
University of California, San Diego, National Research University Higher School of Economics
Algorithms on Strings
View course
University of California, San Diego, National Research University Higher School of Economics
Algorithms on Graphs
1 course
University of California, San Diego, National Research University Higher School of Economics
Algorithms on Graphs
View course
University of California, San Diego, National Research University Higher School of Economics
Advanced Algorithms and Complexity
1 course
University of California, San Diego, National Research University Higher School of Economics
Advanced Algorithms and Complexity
View course
Coursera
Coursera provides universal access to the world’s best education, partnering with top universities and organizations to offer courses online.
© 2018 Coursera Inc. All rights reserved.
Download on the App StoreGet it on Google Play
  • Coursera
  • About
  • Leadership
  • Careers
  • Catalog
  • Certificates
  • Degrees
  • For Business
  • For Government
  • Community
  • Partners
  • Mentors
  • Translators
  • Developers
  • Beta Testers
  • Connect
  • Blog
  • Facebook
  • LinkedIn
  • Twitter
  • Google+
  • Tech Blog
  • More
  • Terms
  • Privacy
  • Help
  • Accessibility
  • Press
  • Contact
  • Directory
  • Affiliates