This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems. We will also cover some advanced topics in data structures.
This course is part of the Data Science Foundations: Data Structures and Algorithms Specialization

About this Course
Completion of previous courses. Calculus, probability theory: distributions, expectations and moments. Some programming experience with Python.
What you will learn
Describe basic algorithm design techniques
Create divide and conquer, dynamic programming, and greedy algorithms
Understand intractable problems, P vs NP and the use of integer programming solvers to tackle some of these problems
Skills you will gain
- Analysis of Algorithms
- Algorithm Design
- Python Programming
- Data Structure Design
- Intractability
Completion of previous courses. Calculus, probability theory: distributions, expectations and moments. Some programming experience with Python.
Offered by
Start working towards your Master's degree
Syllabus - What you will learn from this course
Divide and Conquer Algorithms
Dynamic Programming Algorithms
Greedy Algorithms
Intractability and Supplement on Quantum Computing
Reviews
- 5 stars71.42%
- 4 stars16.32%
- 3 stars2.04%
- 2 stars2.04%
- 1 star8.16%
TOP REVIEWS FROM DYNAMIC PROGRAMMING, GREEDY ALGORITHMS
Excellent. This course covers some difficult topics, but the lectures and homework assignments were superb and made them quite approachable.
This course save me time on learning the dynamic programming. I really love the 4-steps to construct the dynamic programming. It gives me the guideline when designing DP solution.
Great work from professor Sriram Sankaranarayanan explaining such complex material. I wish we could review more examples during the class (specially Dynamic Programming ones).
Excellent course! I really learned alot and enjoyed all the challenges and topics in your course. Thank you so much!
About the Data Science Foundations: Data Structures and Algorithms Specialization

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.