- Platform
- Coursera
- Provider
- Stanford University
- Effort
- 4-8 hours/week
- Length
- 4 weeks
- Language
- English
- Credentials
- Paid Certificate Available
- Part of
- Course Link
Overview
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.
Taught by
Tim Roughgarden
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.
Syllabus
WEEK 1
Week 1
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm.
WEEK 2
Week 2
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).
WEEK 3
Week 3
Huffman codes; introduction to dynamic programming.
WEEK 4
Week 4
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.
WEEK 1
Week 1
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm.
WEEK 2
Week 2
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).
WEEK 3
Week 3
Huffman codes; introduction to dynamic programming.
WEEK 4
Week 4
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.
Taught by
Tim Roughgarden