# Algorithmic Problems in Python

Algorithmic Problems in Python

*Algorithmic Problems in Python Learn recursion, backtracking (n-queens problem etc.) and dynamic programming (knapsack problem etc.)*

What you'll learn

- Understand backtracking
- Understand dynamic programming
- Understanding recursion
- Solve algorithmic problems from scratch

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

Section 2:

- what is backtracking
- n-queens problem
- Hamiltonian cycle problem
- knight's tour problem
- coloring problem
- NP-complete problems

Section 3:

- what is dynamic programming
- Fibonacci numbers
- knapsack problem
- coin change problem
- rod cutting problem

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems one by one.

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!

## Post a Comment for " Algorithmic Problems in Python "