Learn recursion, backtracking (n-queens problem etc.) and dynamic programming (knapsack problem etc.)
What you'll learn
- Understand backtracking
- Understand dynamic programming
- Solve problems from scratch
- Implement feedforward neural networks from scratch
Requirements
- Basic Python
Description
This course is about the fundamental concepts of algorithmic problems, focusing on recursion, backtracking and dynamic programming. As far as I am concerned these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or R&D.
Section 1:
- what is recursion
- stack memory and recursion
- factorial numbers problem
- Fibonacci numbers
- towers of Hanoi problem
- recursion vs iteration
- what is backtracking
- n-queens problem
- Hamiltonian cycle problem
- knight's tour problem
- coloring problem
- NP-complete problems
- what is dynamic programming
- Fibonacci numbers
- knapsack problem
- coin change problem
- rod cutting problem
The first chapter is about recursion. Why is it crucial to know about recursion as a computer scientist? Why stack memory is crucial in recursion? We will consider several recursion related problems such as factorial problem or Fibonacci numbers. The second chapter is about backtracking: we will talk about problems such as n-queens problem or hamiltonian cycles and coloring problem. In the last chapter we will talk about dynamic programming, theory first then the concrete examples one by one: Fibonacci sequence problem and knapsack problem.
Thanks for joining the course, let's get started!
Who this course is for:
- This course is meant for newbies who are not familiar with algorithmic problems in the main or students looking for some refresher