# Algorithms in Python â?? Full Course for Beginners

#### ByWeb Monkey

Sep 23, 2022

In this Introduction to Algorithms in Python course, you’ll learn about algorithm basics like recursion and then go all the way to working with concepts like dynamic programming.

The 5 main course segments include simple recursive algorithms, data structures, divide & conquer, greedy algorithms, and dynamic programming.

â?ï¸ Joy Brock developed this course in collaboration with realtoughcandy.io. Check out Joy’s channel: https://www.youtube.com/c/PythonLearningChannel

â­ï¸ Code Samples â­ï¸
ð??? https://github.com/joyb0218/intro_to_algorithms/blob/main/1_recursive_algorithms
ð??? https://github.com/joyb0218/intro_to_algorithms/blob/main/2_data_structures
ð??? https://github.com/joyb0218/intro_to_algorithms/blob/main/3_divide_conquer
ð??? https://github.com/joyb0218/intro_to_algorithms/blob/main/4_greedy_algorithms
ð??? https://github.com/joyb0218/intro_to_algorithms/blob/main/5_dynamic_programming

â­ï¸ Course Contents â­ï¸
â?¨ï¸ (0:00:00) Intro & course overview
â?¨ï¸ (0:07:07) Factorials refresher
â?¨ï¸ (0:10:04) CODING CHALLENGE: Factorial program using iteration, recursion
â?¨ï¸ (0:14:57) What is a permutation?
â?¨ï¸ (0:16:34) CODING CHALLENGE: Recursive permutation
â?¨ï¸ (0:20:13) Iterative permutation example
â?¨ï¸ (0:22:17) 8/N queens problem: theory & explanation
â?¨ï¸ (0:23:57) Real world example of permutations
â?¨ï¸ (0:24:49) Lesson recap
â?¨ï¸ (0:26:11) What are data structures?
â?¨ï¸ (0:27:53) What is a one-dimensional array?
â?¨ï¸ (0:29:01) Search & sort
â?¨ï¸ (0:30:39) CODING CHALLENGE: Linear search
â?¨ï¸ (0:31:00) Binary search
â?¨ï¸ (0:32:06) CODING CHALLENGE: Iterative binary search
â?¨ï¸ (0:33:31) Coding a recursive binary search
â?¨ï¸ (0:34:47) Bubble sort
â?¨ï¸ (0:36:42) CODING CHALLENGE: Bubble sort
â?¨ï¸ (0:38:02) Insertion sort
â?¨ï¸ (0:39:24) CODING CHALLENGE: Insertion sort
â?¨ï¸ (0:52:12) Hash tables
â?¨ï¸ (0:56:27) Lesson recap
â?¨ï¸ (0:57:42) Divide & conquer algorithm paradigm: uses, benefits and more
â?¨ï¸ (1:00:43) Merge sort
â?¨ï¸ (1:02:48) CODING CHALLENGE: An efficient merge sort
â?¨ï¸ (1:05:48) Getting judged mercilessly on LeetCode
â?¨ï¸ (1:06:47) Getting Python to do the work for us with sorted()
â?¨ï¸ (1:07:33) Matrix multiplication
â?¨ï¸ (1:10:06) CODING CHALLENGE: Matrix multiplication
â?¨ï¸ (1:11:20) Strassen algorithm
â?¨ï¸ (1:14:45) CODING CHALLENGE: Strassen algorithm
â?¨ï¸ (1:16:27) Lesson recap
â?¨ï¸ (1:17:21) What is a greedy algorithm?
â?¨ï¸ (1:19:20) Assign mice to holes conceptual overview
â?¨ï¸ (1:21:45) CODING CHALLENGE: Assign mice to holes
â?¨ï¸ (1:23:10) Fractional knapsack
â?¨ï¸ (1:23:36) Understanding the fractional knapsack problem with a (light-hearted) dystopian apocalypse example
â?¨ï¸ (1:25:54) Coding challenge prep
â?¨ï¸ (1:27:13) CODING CHALLENGE: Fractional knapsack
â?¨ï¸ (1:31:49) Egyptians fractions
â?¨ï¸ (1:34:03) CODING CHALLENGE: Egyptian fractions
â?¨ï¸ (1:37:06) Lesson recap
â?¨ï¸ (1:38:15) What is dynamic programming (also called DP)?
â?¨ï¸ (1:41:55) What is the principle of optimality?
â?¨ï¸ (1:42:20) The 3-step process to solving a problem with optimal substructure
â?¨ï¸ (1:43:55) Introduction to â??ugly numbersâ?
â?¨ï¸ (1:47:19) CODING CHALLENGE: Ugly numbers
â?¨ï¸ (1:51:41) Traveling salesman problem (TSP)
â?¨ï¸ (1:55:49) CODING CHALLENGE: Traveling salesman problem
â?¨ï¸ (1:59:52) Palindromic matrix paths
â?¨ï¸ (2:03:11) CODING CHALLENGE: Palindromic matrix paths
â?¨ï¸ (2:08:37) Lesson recap
â?¨ï¸ (2:10:03) Course wrap up (and the importance of coding every day)

ð??? Thanks to our Champion and Sponsor supporters:
ð??¾ Raymond Odero
ð??¾ AgustÃ­n Kussrow
ð??¾ aldo ferretti
ð??¾ Otis Morgan
ð??¾ DeezMaster

Read hundreds of articles on programming: https://freecodecamp.org/news