Algorithmic Problems in Python
4.4 (249 ratings)
3,853 students enrolled

# Algorithmic Problems in Python

Learn recursion, backtracking (n-queens problem etc.) and dynamic programming (knapsack problem etc.)
4.4 (249 ratings)
3,853 students enrolled
Created by Holczer Balazs
Last updated 1/2020
English
English [Auto]
Current price: \$139.99 Original price: \$199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
• 4 hours on-demand video
• 4 articles
• Access on mobile and TV
• Certificate of Completion
Training 5 or more people?

What you'll learn
• Understand backtracking
• Understand dynamic programming
• Solve problems from scratch
• Implement feedforward neural networks from scratch
Course content
Expand all 40 lectures 04:04:05
+ Recursion
9 lectures 46:28
Recursion and stack memory (stack overflow)
10:09
Factorial problem
06:46
Fibonacci-numbers problem
04:06
Fibonacci-numbers with tail recursion
00:21
Towers of Hanoi introduction
06:00
Towers of Hanoi implementation
05:48
Recursion and iteration (differences)
01:43
+ Search Algorithms
2 lectures 10:05
Linear search algorithm
03:19
Binary search algorithm
06:46
+ Backtracking
14 lectures 01:36:45
Preview 06:06
Hamiltonian cycle introduction
09:01
Hamiltonian cycle illustration
05:55
Hamiltonian cycle implementation
09:18
Coloring problem introduction
09:12
Coloring problem implementation
06:57
Knight tour introduction
04:06
Knight tour implementation
08:34
UPDATE: Knight's Tour
00:17
Maze problem introduction
03:13
Maze problem implementation
07:59
NP-complete problems
03:51
+ Dynamic Programming
12 lectures 01:28:54
Dynamic programming introduction
03:22
Fibonacci numbers introduction
05:34
Fibonacci numbers implementation
04:44
Knapsack problem introduction
12:49
Knapsack problem example
13:18
Knapsack problem implementation
07:09
Coin change problem introduction
09:18
Coin change problem example
06:04
Coin change problem implementation
07:18
Rod cutting problem introduction
05:24
Rod cutting problem example
08:14
Rod cutting problem implementation
05:40
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

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!

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