Recursion: the full course

Process, optimization, techniques… all what you need to know about recursion is covered in this course

Even if the concept of recursion is simple, a lot of people struggle with it (not understanding the recursive process, not being able to figure out the base cases and recursive cases…), this is why I wanted to create a full course on recursion that covers all what you need to know about it, it also contains 11 solved and explained coding problems to practice.

What you’ll learn

  • Recursion.
  • Recursive process.
  • Optimizing a recursive function (with memoization and dynamic programming).
  • Algorithmic techniques based on recursion (backtracking and divide-and-conquer).
  • Tail recursion.
  • Breaking down a problem into subproblems of the same type.

Course Content

  • Introduction –> 3 lectures • 36min.
  • Multiple recursive calls –> 2 lectures • 19min.
  • Visualize call stack and recursion tree –> 2 lectures • 8min.
  • Time and space complexity analysis of recursive functions –> 5 lectures • 37min.
  • Recursion vs Iteration –> 3 lectures • 16min.
  • Optimize a recursive function with memoization and dynamic programming –> 4 lectures • 16min.
  • Divide-and-conquer and backtracking –> 3 lectures • 26min.
  • Recursive data structures –> 3 lectures • 5min.
  • Tail recursion –> 2 lectures • 14min.
  • Double recursion –> 1 lecture • 4min.

Recursion: the full course

Requirements

  • Basic programming knowledge.

Even if the concept of recursion is simple, a lot of people struggle with it (not understanding the recursive process, not being able to figure out the base cases and recursive cases…), this is why I wanted to create a full course on recursion that covers all what you need to know about it, it also contains 11 solved and explained coding problems to practice.

And knowing recursion will also give you a new way of thinking, which is dividing the problem into subproblems of the same type, which is necessary to understand techniques like dynamic programming, backtracking…

See you in the first lecture!

The course covers:

  • What is recursion
  • Code and execution
  • Base cases and recursive cases
  • Multiple recursive calls process
  • Call stack
  • Recursion tree
  • How to visualize the process
  • Recursive functions complexity analysis (time and space comp)
  • Recursion vs Iteration
  • How to optimize a recursive function (memoization and dynamic programming)
  • Divide-and-conquer
  • Backtracking
  • Recursive data structures
  • Tail recursion
  • Double recursion
  • How to think recursively

Plus 11 solved and explained coding problems to practice:

  • Sum of digits
  • Count occurrences
  • Has adjacent duplicates
  • Reverse string
  • Minimum cost path in matrix
  • All possible phrases
  • Keypad combinations
  • String subsequences
  • Binary numbers with at most 2 zeros
  • Word search
  • Array permutations
Get Tutorial