Course Information
Course Overview
Recursion, Memoization, and Tabulation in Dynamic Programming
In this course, you are going to learn about one of the most popular programming topics, dynamic programming. This topic is known as one of the most difficult topics in the programming world. However, in this course, we are going to simplify it and deeply learn the basis on which it stands.
What we are going to do is to start by introducing and defining dynamic programming, and present two popular techniques that are generally used which are memoization, and tabulation. We are going to learn about the differences between them, and when and where to use each one of them.
Then, we are going to solve some of the most famous dynamic programming problems by a detailed explanation of the problem, followed by an example walkthrough. Then, we come up with a pseudo-code, and finally we implement our code using three languages, Java, JavaScript, and Python.
This course contains multiple quizzes and coding exercises that will help you deeply understand each of the topics presented.
With that being said, I hope you enjoy this course, and I would love to help you make your dynamic programming experience more fun, and enjoyable as much as possible!
Good Luck and Enjoy!
Course Content
- 10 section(s)
- 42 lecture(s)
- Section 1 Introduction
- Section 2 Basics Of Dynamic Programming
- Section 3 Minimum Number Of Bills to Return an Amount
- Section 4 Number Of Ways to Return an Amount
- Section 5 Knapsack With Repetition
- Section 6 Knapsack Without Repetition
- Section 7 Number Of Subsets that Add Up to A Specific Number
- Section 8 Longest Common Subsequence
- Section 9 Longest Increasing Subsequence
- Section 10 Final Message
What You’ll Learn
- How to solve dynamic programming problems
- How to think in a programming way
- How to improve possible solution and enhance time and space complexity using Dynamic Programming
- How to Use an Example to come up with a Dynamic Programming Solution
Skills covered in this course
Reviews
-
ZZachary Schaffter
Information is great! The course could be improved with more clear diagrams. The lecturer's handwritten approach, while comprehensive, can get difficult to decipher in parts.
-
OOliver Almalel
The manner of finding the logic for the dynamic programming process was given but never explained as to how or why it was reached. Reaching those logical jumps is the most important aspect of learning. The tree structures were given for recursion, the manner of tabulating values in the 2-d arrays were provided, but not the manner of how those patterns were discovered.
-
MMariam
Best experience in learning programming so far. Good Work!!
-
MMark siyam
That is a really excellent explanation, thank you for this for your free offer. all are clearly explained. thanks a lot keep going. the explanations of concepts are clearly explained.