The Complete Data Structures and Algorithms Course in Python (Udemy.com)
100+ DSA Interview Questions for Cracking FAANG with Animated Examples for Deeper Understanding and Faster Learning
Created by: Elshad Karimov
Last updated July 2025
What you will learn
- Learn, implement, and use different Data Structures
- Learn, implement and use different Algorithms
- Become a better developer by mastering computer science fundamentals
- Learn everything you need to ace difficult coding interviews
- Cracking the Coding Interview with 100+ questions with explanations
- Time and Space Complexity of Data Structures and Algorithms
- Recursion
- Big O
How it compares
Against the other 388 rated Udemy courses in Python on CourseDuck:
- Rating4.5 out of 5higher than 52% of them
- Reviews11,501#35 of 389 by number of reviews
- Length46.5 hourslonger than 96% of them
- Last updatedJuly 2025more recently than 68% of them
Course Description
Welcome to the Complete Data Structures and Algorithms in Python Bootcamp, the most modern, and the most complete Data Structures and Algorithms in Python course on the internet.
At 40+ hours, this is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms in Python. You will see 100+ Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft and how to face Interviews with comprehensive visual explanatory video materials which will bring you closer towards landing the tech job of your dreams!
Learning Python is one of the fastest ways to improve your career prospects as it is one of the most in demand tech skills! This course will help you in better understanding every detail of Data Structures and how algorithms are implemented in high level programming language.
We'll take you step-by-step through engaging video tutorials and teach you everything you need to succeed as a professional programmer.
After finishing this course, you will be able to:
Learn basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.
Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications
Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets
Learn how to apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.
Why this course is so special and different from any other resource available online?
This course will take you from very beginning to a very complex and advanced topics in understanding Data Structures and Algorithms!
You will get video lectures explaining concepts clearly with comprehensive visual explanations throughout the course.
You will also see Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft.
I cover everything you need to know about technical interview process!
So whether you are interested in learning the top programming language in the world in-depth
And interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect and is excited to ace your next technical interview this is the course for you!
And this is what you get by signing up today:
Lifetime access to 40+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want
Friendly and fast support in the course Q&A whenever you have questions or get stuck
FULL money back guarantee for 30 days!
Who is this course for?
Self-taught programmers who have a basic knowledge in Python and want to be professional in Data Structures and Algorithms and begin interviewing in tech positions!
As well as students currently studying computer science and want supplementary material on Data Structures and Algorithms and interview preparation for after graduation!
As well as professional programmers who need practice for upcoming coding interviews.
And finally anybody interested in learning more about data structures and algorithms or the technical interview process!
This course is designed to help you to achieve your career goals. Whether you are looking to get more into Data Structures and Algorithms , increase your earning potential or just want a job with more freedom, this is the right course for you!
The topics that are covered in this course.
Section 1 - Introduction
What are Data Structures?
What is an algorithm?
Why are Data Structures and Algorithms important?
Types of Data Structures
Types of Algorithms
Section 2 - Recursion
What is Recursion?
Why do we need recursion?
How Recursion works?
Recursive vs Iterative Solutions
When to use/avoid Recursion?
How to write Recursion in 3 steps?
How to find Fibonacci numbers using Recursion?
Section 3 - Cracking Recursion Interview Questions
Question 1 - Sum of Digits
Question 2 - Power
Question 3 - Greatest Common Divisor
Question 4 - Decimal To Binary
Section 4 - Bonus CHALLENGING Recursion Problems (Exercises)
power
factorial
productofArray
recursiveRange
fib
reverse
isPalindrome
someRecursive
flatten
captalizeFirst
nestedEvenSum
capitalizeWords
stringifyNumbers
collectStrings
Section 5 - Big O Notation
Analogy and Time Complexity
Big O, Big Theta and Big Omega
Time complexity examples
Space Complexity
Drop the Constants and the non dominant terms
Add vs Multiply
How to measure the codes using Big O?
How to find time complexity for Recursive calls?
How to measure Recursive Algorithms that make multiple calls?
Section 6 - Top 10 Big O Interview Questions (Amazon, Facebook, Apple and Microsoft)
Product and Sum
Print Pairs
Print Unordered Pairs
Print Unordered Pairs 2 Arrays
Print Unordered Pairs 2 Arrays 100000 Units
Reverse
O(N) Equivalents
Factorial Complexity
Fibonacci Complexity
Powers of 2
Section 7 - Arrays
What is an Array?
Types of Array
Arrays in Memory
Create an Array
Insertion Operation
Traversal Operation
Accessing an element of Array
Searching for an element in Array
Deleting an element from Array
Time and Space complexity of One Dimensional Array
One Dimensional Array Practice
Create Two Dimensional Array
Insertion - Two Dimensional Array
Instructor Details
- 4.5 Rating
11,501 Reviews
Elshad Karimov
I am Elshad Karimov and I am a Software Developer, online instructor , blogger and author of book, Data Structures and Algorithms in Swift. I have more than 10 years of software development experience with a solid background in Python and Java as well as Oracle PL/SQL, Swift and C#. I have been working in several companies and developed several extensions for financial and billing softwares. I have developed several games using Unity and mobile apps for different purposes.
More courses by Elshad Karimov
Java Data Structures and Algorithms Masterclass (2025)
4.3 (7,888 Reviews)
Provider: Udemy
Time: 46.6h
$99.99
100 Days of Code: JavaScript Data Structures and Algorithms (2025)
4.6 (138 Reviews)
Provider: Udemy
Time: 30.2h
$19.99
More Python courses
Python 3: Deep Dive (Part 1 - Functional) (2024)
4.9 (13,534 Reviews)
Provider: Udemy
Time: 45.8h
$22.99
Python 3: Deep Dive (Part 3 - Dictionaries, Sets, JSON) (2023)
4.9 (1,996 Reviews)
Provider: Udemy
Time: 21.9h
$17.99
Programming for Everybody (Getting Started with Python)
4.9 (717 Reviews)
Provider: Coursera
Time: 12h
Free
An Introduction to Interactive Programming in Python (2013)
4.9 (554 Reviews)
Provider: Coursera
Time: 6h 40m
Free
Python: Python Programming Language | Tutorial | Beginner (2023)
4.9 (239 Reviews)
Provider: Udemy
Time: 5.1h
$19.99
An Introduction to Interactive Programming in Python (Part 2)
4.9 (225 Reviews)
Provider: Coursera
Time: 25h
Free
Reviews
By Nathaniel Cascini on 4/17/2026
Elshad did an amazing job. It is easy to see that he cares a lot about his students through the quality of his work and the effort that goes into everything he does. He is thorough in his explanations and consistent in his presentation of every data structure. On top of that, he has created several animated slides to illustrate what is happening with the code. I can tell that he even thinks about the smallest details when he makes his slides, such as how to position information on the screen so it can be easily acquired, and his points are clear. I cannot imagine how many hundreds of hours went into making this course, including presenting the topics, writing Python code for each data structure, and providing example problems to help prep for interviews. After each section, he has included a way for students to add suggestions and give him feedback on that section so that he can make it better (and he does implement changes based on those suggestions). What more could someone ask for in a teacher?
By Himanshu Sekhar Dalai on 7/11/2024
This is one of the best course that one should enroll in if looking to understand DSA in depth in Python. The instructor has taken a lot of effort to make this course comprehensive and easy to understand with lot of visualization techniques. I would recommend everyone for this course.
By Akash Bommidi on 8/5/2023
This course is Excellent for me to learn Data Structures and Algorithms. For a non-CS background student like me, this course is perfect for learning DSA in Python. The animations are Great and easily understandable for anyone.
By Kevin Franc on 7/25/2023
Honestly the best course on DSA. Thing about DSA is you'll never find a proper course that covers all topics and this one goes above and beyond in that regard. That being said, the downside is that the lectures aren't presented in an engaging way and you might often find yourself watching them at 1.5x speed.
By Tanishq Varshney on 5/25/2023
I am sure a lot of effort went into designing this course, and there's also the fact that this course covers a wide range of topics. Hence, the three-star rating. The algorithms are also well-explained. However, as others have said, you don't really explain the code. For instance, your coding implementation of the Deletion in Trie, Topological Sort, and BFS for SSSPP were below average, and a lot of time was spent figuring out why you did what you did in the code. The implementation of Prim’s Algorithm is needlessly complex, and apparently, you’ve stopped responding too?
By Ramesh Kasotiya on 9/2/2022
Elshad explains concepts in a very simple way. His way teaching skills makes this subject very easy to understand. Never found anyone who explained the DSA concepts in such an easy manner, and with real life examples. It has become one of my most favourite courses, just because of him. Elshad is one my most favourite teachers now. Thank you Elshad. Keep up the good work.
By Fu Guo on 6/17/2022
Generally speaking, it´s a well-organized course where I, as a beginner with zero experience could quickly grasp the concepts and principals of different data structures and algorithms. Meantime, I'm happy to see that the teacher has updated new lectures about graphs and Dijkstra Algo, which facilitated my understanding of these chapters. The most difficult part I think is dynamic programming as well as its corresponding exercises. A little suggestion: I think it'll be better if Elshad could make more videos explaining how to write the code and the logic behind it. For a beginner like me, I find it pretty hard...Plus, please upload more lectures on backtracking, I'll come back one day!
By sandeep pathak on 5/27/2022
I am enjoying this course, the dry runs for Trees, Binary Trees and Graphs were amazing and easily understandable. Recently I finished Divide and Conquer, The dry runs can be better, specially in the second part where we have problems like p1= x+fn(p+1,q) followed by p2=fn(p,q+1) and then we take max or min of these two. But overall the course is amazing
By SystemNATARAJA on 12/30/2021
The programming tricks and patterns are VERY useful (for example how to solve recursion problems). Sometimes though, there are some shortcuts which aren't explained or aren't really understandable. For example in Graph traversal algorithms we're told the 'visitedNodes array' should only contain visited elements. We then proceed to add to it both visitedElements AND unvisited neighbour nodes already present in the 'queue of nodes to process' (because some other node had the same neighbour). You can fix that in a number of ways. Now, the result is essentially the same as that obtained in the video, but when you're first learning about graphs you can spend an insane amount of time wondering why you added both visited and unvisited nodes to a structure called "visited". There are unexplained shortcuts like that here and there, and sometimes the videos are too detailed for not much really, but some tricks and examples shown make the concepts so much clearer ! Thanks !
By Omar Saleh Abdullah Al-Hajj on 3/3/2021
good : - this course gathers all topics related to data structures and algorithms in one place, - the theory is very well explained - once you ask a question, the instructor and other students try to help you understand the answer bad : - the codes some times are buggy, but they get fixed as soon as reported - the codes in the resources mostly include no documentation - the algorithms which include lots of recursion in the code are really tough to trace and hence tough to follow the execution conclusion : for this price , this course is a great reference to review and brush up your knowledge on data structures and python. 100% worth going for. thank you Elshad.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100





