Learn the basic algorithmic methodologies from backtracking to dynamic programming: Sudoku, Knapsack problem

**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 **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 backtracking
- n-queens problem
- Hamiltonian cycle problem
- knight’s tour problem
- coloring problem
- NP-complete problems

**Section 2:**

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

**Section 3:**

- what are neural networks
- feedforward neural networks
- neural network implementation from sratch

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 **backtracking**: we will talk about problems such as n-queens problem or hamiltonian cycles and coloring problem. In the second chapter we will talk about **dynamic programming**, theory first then the concrete examples one by one: Fibonacci sequence problem and knapsack problem. Finally we are going to discuss **neural networks**.

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