Skip to content
UdemyPythonPaid courseAll LevelsCertificate

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

icon
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

icon
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

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

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.

icon
More courses by Elshad Karimov

$99.99

$19.99

icon
More Python courses

$22.99

$17.99

Free

Free

$19.99

Free

icon
Reviews

4.5

11,501 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

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.

Showing all 10 reviews on CourseDuck

Read all 11,501 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100