The Road To Dynamic Programming: Java, JavaScript, & Python

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

Course Content

  • Introduction –> 2 lectures • 3min.
  • Basics Of Dynamic Programming –> 3 lectures • 18min.
  • Minimum Number Of Bills to Return an Amount –> 5 lectures • 51min.
  • Number Of Ways to Return an Amount –> 5 lectures • 42min.
  • Knapsack With Repetition –> 6 lectures • 51min.
  • Knapsack Without Repetition –> 5 lectures • 40min.
  • Number Of Subsets that Add Up to A Specific Number –> 5 lectures • 44min.
  • Longest Common Subsequence –> 5 lectures • 44min.
  • Longest Increasing Subsequence –> 5 lectures • 34min.
  • Final Message –> 1 lecture • 1min.

The Road To Dynamic Programming: Java, JavaScript, & Python

Requirements

  • Basic Knowledge of at least one of the three programming languages: Java, Python, and JavaScript.
  • Basic knowledge about recursion.

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!