Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming

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

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
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 videos4 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 videos2 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 videos1 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 videos3 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
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.


No comments:

Post a Comment