We may earn an affiliate commission when you visit our partners.
Course image
Glassbyte Team

    Building reliable and highly performant software requires knowledge that goes beyond a certain programming language or framework. It requires a solid understanding of how data is organized in memory, how it can be manipulated, sorted or searched into. There’s a reason why all the big tech companies such as Google, Amazon or Netflix focus their technical interviews on those topics. Whether you do mobile apps, websites, games, machine learning or any other work that involves coding, you need a good grasp of Data Structures and Algorithms.

Read more

    Building reliable and highly performant software requires knowledge that goes beyond a certain programming language or framework. It requires a solid understanding of how data is organized in memory, how it can be manipulated, sorted or searched into. There’s a reason why all the big tech companies such as Google, Amazon or Netflix focus their technical interviews on those topics. Whether you do mobile apps, websites, games, machine learning or any other work that involves coding, you need a good grasp of Data Structures and Algorithms.

    Many self taught developers and aspiring engineers often feel they lack the knowledge when having to decide on the right data structure or the right approach for solving a problem. If you ever felt that way, this material is the right choice for you. This course packs months of Computer Science subject matter to get you on the same level of proficiency as someone with a Computer Science degree.

What sets us apart ?

    Every video begins with an in depth analysis of the topic at hand. At this stage we won’t write any code yet, but rather learn how to approach the problem, think of ways we could solve it and build a mental model of the solution.

    We then go on to code the algorithm step by step. But we don’t stop there. We take one or more examples and walk through the code line by line. And we mean that literally. You will see how the code runs from top to bottom and how data flows and changes during execution. We find this method the absolute best way to really understand the inner workings of an algorithm.

    We’ll also analyze the time performance and space utilization of every algorithm and method we write using the Big O Notation. We’ll talk about the strengths and weaknesses of each data structure and discuss their real world usage. Apart from all of that, you’ll also learn things like recursion, how computers work under the hood, problem solving techniques, common programming patterns and much more.

What does this course cover ?

  • How computers work under the hood

  • What a data structure is

  • What an algorithm is

  • Problem solving techniques

  • Big O Notation - how to analyze the time performance and space utilization of algorithms. This is done for every single function/algorithm we write.

  • Gain a deeper understanding of how code works

  • Recursion

Data Structures:

  • Arrays

  • Hash Tables

  • Singly Linked Lists

  • Doubly Linked Lists

  • Stacks

  • Queues

  • Binary Search Trees

  • Tree Traversal

  • Heaps

  • Graphs

Sorting Algorithms:

  • Insertion Sort

  • Selection Sort

  • Bubble Sort

  • Shell Sort

  • Heap Sort

  • Merge Sort

  • Quick Sort

  • Radix Sort

Thanks for considering, and I hope this course will help you in your journey. Happy learning.

Enroll now

What's inside

Learning objectives

  • Understand how computers store and work with data
  • Analyze the space and memory utilization of any algorithm using the big o notation
  • Dive deep into the mechanisms of function execution and demystify the concept of recursion
  • Implement from scratch the most common 9 data structures
  • Understand how the best known 8 sorting algorithms work
  • Learn the searching / traversing algorithms for trees and graphs
  • Improve your problem solving skills
  • Learn the behind the scenes of the basic data structures (arrays and hash maps)
  • Understand common programming patterns
  • Learn everything you need to know for the technical interview

Syllabus

Introduction
Course objectives, structure and more
How computers work
What are algorithms
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides a comprehensive foundation in data structures and algorithms, which are essential for building reliable and performant software
Taught by Glassbyte Team, who are recognized for their expertise in data structures and algorithms
Covers a wide range of data structures, including arrays, hash tables, linked lists, trees, and graphs, as well as sorting algorithms
Includes in-depth analysis of algorithms and their performance, using the Big O Notation
Offers hands-on practice through coding examples and step-by-step walkthroughs
Designed for self-taught developers and aspiring engineers who want to enhance their knowledge in data structures and algorithms

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

In-depth python ds&a fundamentals

Students say this course offers a thorough and methodical approach to Data Structures and Algorithms in Python. It's particularly praised for its in-depth conceptual analysis before coding, helping to build a strong mental model. Learners value the line-by-line code walkthroughs, which clarify how data flows and changes during execution. The comprehensive Big O Notation analysis for every algorithm is a significant strength, equipping students to analyze performance. It's seen as a practical course for technical interviews, providing foundational knowledge akin to a Computer Science degree. While comprehensive, some may seek additional challenging practice exercises.
Pacing may vary in suitability for different learner levels.
"As a beginner, I found some sections moved a bit <span class='warning'>quickly, requiring me to rewatch videos to grasp the concepts fully."
"For someone with some prior programming experience, the <span class='positive'>pace felt just right and efficient for a quick review or learning new topics."
"The course assumes a basic understanding of Python, which is fine, but <span class='neutral'>absolute beginners might need to supplement their Python knowledge."
Covers a wide array of fundamental data structures and algorithms.
"The course's <span class='positive'>comprehensive coverage of common data structures and sorting algorithms is excellent for building a strong foundation."
"I found the detailed sections on <span class='positive'>linked lists, trees, and graphs particularly useful and well-explained, covering all the essentials."
"It covered everything from <span class='positive'>basic arrays and hash tables to advanced sorting algorithms, making it a complete resource for DS&A."
Tailored for technical interviews and real-world application.
"This material directly addresses what I needed for <span class='positive'>technical interviews, covering all the essential DS&A topics."
"The focus on <span class='positive'>real-world usage of data structures helped me see their practical applications beyond theory."
"I gained valuable <span class='positive'>problem-solving techniques that are applicable not just to algorithms but to general coding challenges."
Thoroughly covers time and space complexity for all algorithms.
"Learning <span class='positive'>Big O Notation for every single function and algorithm was incredibly valuable for understanding performance implications."
"The course clearly explains how to <span class='positive'>analyze space and memory utilization, a crucial skill for writing efficient code."
"I now feel much more confident applying <span class='positive'>performance analysis techniques to my own algorithms, a huge benefit for interviews."
Provides meticulous, line-by-line code execution explanations.
"The <span class='positive'>line-by-line code walkthroughs are fantastic; I can literally see how the code runs and data changes, which solidifies understanding."
"I find the <span class='positive'>step-by-step coding and detailed examples to be the absolute best way to grasp complex algorithm inner workings."
"It was incredibly helpful to visualize <span class='positive'>how data flows and transforms during execution with the live code tracing."
Deep dives into concepts before moving to implementation.
"I really appreciate how the course breaks down complex topics with <span class='positive'>in-depth analysis before writing any code, helping me build a strong mental model."
"The instructor's method of explaining <span class='positive'>how to approach problems and think of solutions first is incredibly effective for understanding."
"It's great that they don't jump straight into coding; the <span class='positive'>pre-coding conceptual discussions are a massive plus for true understanding."
Could benefit from more challenging hands-on coding exercises.
"While the explanations are clear, I would have liked <span class='warning'>more hands-on coding challenges or exercises to solidify my understanding."
"I felt the need to seek <span class='warning'>additional practice problems outside the course to truly master some of the more complex concepts."
"More opportunities for <span class='neutral'>self-paced coding assignments beyond just following the instructor's examples would enhance retention."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Data Structures and Algorithms in Python with these activities:
Master Insertion Sort
Inserting a value into its correct position in a sorted list is a fundamental operation of sorting algorithms. This will familiarize you with the Insertion Sort algorithm in particular.
Browse courses on Insertion Sort
Show steps
  • Create an array of unordered numbers.
  • Pick an element in the array.
  • Compare the element to the ones on its left.
  • Shift the sorted elements to the right until the correct position is found.
  • Insert the element into the correct position.
Explain Recursion to Yourself
Give yourself a foundation in recursion by creating content that explains its mechanism and how it relates to functions and the call stack.
Browse courses on Recursion
Show steps
  • Define recursion and explain how it works.
  • Explain the use of the call stack during recursive calls.
  • Illustrate recursion with a simple example, such as finding the factorial of a number.
Learn Binary Search Tree Traversal Algorithms
BinaryTree traversal algorithms are key to the effective use of this data structure, as it helps you search, insert, and delete data. You will familiarize yourself with depth-first search and breadth-first search techniques.
Browse courses on Binary Search Tree
Show steps
  • Create a binary search tree with sample data.
  • Implement a depth-first search algorithm and test it on the tree.
  • Implement a breadth-first search algorithm and test it on the tree.
  • Compare the results and time complexity of both algorithms.
Show all three activities

Career center

Learners who complete Data Structures and Algorithms in Python will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected 50 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Data Structures and Algorithms in Python.
Widely recognized as the 'bible' of algorithms, this book provides a comprehensive and rigorous treatment of algorithm design and analysis, including a thorough foundation in time complexity analysis. It is an essential reference for students and professionals, covering a broad range of algorithms and mathematical techniques for analyzing their efficiency. is commonly used as a textbook in undergraduate and graduate algorithms courses.
Delves into the fundamentals of algorithms and data structures, covering hash tables in depth. It provides a rigorous mathematical treatment of the subject, suitable for advanced readers.
This graduate-level textbook provides a rigorous and comprehensive introduction to computational complexity theory, a field deeply intertwined with the limits of time complexity. It covers fundamental complexity classes, reductions, and advanced topics, requiring a strong mathematical background. It is an essential reference for anyone seeking to understand the theoretical boundaries of computation.
Gathers hundreds of battle-tested recipes covering network programming, memory management, data structures, and functional decorators for veteran application developers.
Delivers the canonical blueprint for numeric analysis from the creator of pandas, thoroughly detailing NumPy structures, data cleaning, and high-speed transformations.
Introduces clean architecture, domain-driven design, and event-driven microservices to Python developers, demonstrating repository patterns and dependency inversion.
Focuses on the design of algorithms motivated by real-world problems, with a strong emphasis on developing analytical skills. It provides a solid treatment of time complexity analysis within the context of various algorithm design techniques. It widely respected textbook for undergraduate and graduate courses, known for its clear explanations and insightful approach.
This graduate-level textbook offers a concise yet rigorous introduction to algorithms, with a strong emphasis on theoretical foundations and analysis. It covers key algorithm design techniques and their complexity analysis, providing a deeper understanding of the subject. It is often used in advanced algorithms courses.
Demystifies programming for practical utility, guiding beginners through real-world automation projects including web scraping, spreadsheet generation, and file audits.
This Japanese translation of the renowned textbook 'Introduction to Algorithms' provides a comprehensive overview of arrays, including their analysis, implementation, and applications in algorithm design. It is an excellent resource for readers seeking a thorough understanding of the topic.
Comprehensive treatment of algorithmics, from the foundations to advanced topics such as randomized algorithms and approximation algorithms. It is written in a clear and concise style, and it includes many examples and exercises.
Focuses on static typing, structural subtyping, and defensive design techniques, demonstrating how modern type annotations prevent regressions in enterprise codebases.
Offers a unique blend of theoretical material and practical guidance on algorithm design and analysis. It provides clear explanations of time complexity concepts and their application, including a valuable 'Hitchhiker's Guide to Algorithms' section that serves as a handy reference for various algorithmic problems and their complexities. It is suitable for both students and working professionals seeking to apply algorithmic knowledge.
Unpacks professional testing methodologies using pytest, explaining fixture management, parameterized tests, coverage tracking, and automated CI test execution.
The final book in the series explores algorithms for NP-hard problems, touching upon the boundaries of efficient computation and the time complexity classes associated with these problems. It delves into more advanced topics related to complexity theory and approximation algorithms. Suitable for advanced undergraduates and graduate students.
Provides a clear and accessible introduction to the fundamental concepts of computability and complexity theory. It covers topics such as Turing machines, decidability, and the basics of time complexity classes like P and NP. It standard textbook for undergraduate and graduate courses in theoretical computer science.
This textbook is suitable for advanced data structures or introductory graduate-level algorithm analysis courses. It bridges the gap between foundational data structures and more advanced analysis techniques. The book provides a rigorous and in-depth analysis of algorithms and their implementation in C++.
Investigates advanced software craft, detailing packaging distribution, bytecode internals, scaling architectures, and maintainability across large distributed systems.
Bridges volumetric point cloud analysis with Python, teaching LiDAR processing, spatial meshing, and 3D machine vision using modern scientific computing toolchains.
Presents a welcoming, foundational ramp into computational logic and programming, establishing syntax literacy, object modeling, and error handling for total beginners.
This textbook presents algorithm design techniques and analysis methods in a clear and accessible way. It includes dedicated chapters on the analysis framework and asymptotic notations, making it highly relevant to understanding time complexity. It popular choice for undergraduate algorithms courses.
Provides 50 focused exercise routines and guided breakdowns designed to build instinctive muscle memory across collections, functional pipelines, algorithms, and file I/O.
Is an excellent starting point for anyone new to algorithms and recursion. It uses clear, visual explanations to make the concepts easy to grasp. While not solely focused on recursion, it dedicates a chapter to the topic, explaining the base case and recursive case with simple examples. It's highly recommended for high school and early undergraduate students, providing a solid foundation before diving into more theoretical texts. It's more valuable as an introductory read than a comprehensive reference.
Explores the use of arrays in modern programming languages and environments, discussing advanced topics such as concurrent programming, memory management, and performance optimization. It is particularly relevant for readers interested in understanding how arrays are used in real-world software systems.
Tackles the full lifecycle of shipping models into production, covering feature store development, container packaging, drift detection, and continuous retraining.
Aims to make learning data structures and algorithms approachable and intuitive. It uses clear language and analogies to explain concepts like linked lists. It's particularly well-suited for beginners or those who have struggled with more theoretical texts, helping to build a broad understanding of the topic.
The second book in the series focuses on graph algorithms and data structures, analyzing their time complexity. It builds upon the basic analysis techniques introduced in Part 1 and applies them to fundamental graph problems. Suitable for undergraduates and those wanting to deepen their understanding of specific algorithm types.
Explores distributed computing, where hash tables play a crucial role in data distribution and consistency. It provides insights into the design and implementation of distributed hash tables and their applications in large-scale systems.
Provides a comprehensive overview of data structures and algorithms, including their implementation in C++. It covers arrays as a fundamental data structure and discusses their use in various algorithms and applications.
Presents data structures using Java. It covers hash tables comprehensively, explaining their implementation and applications in real-world scenarios.
This textbook offers a rigorous introduction to data structures and algorithms with implementations in C++. It covers a wide range of topics and is suitable for undergraduate computer science programs.
Delves into functional programming principles using Scala, where recursion primary means of iteration. It provides a deep understanding of how recursion is used in a functional context, including concepts like tail recursion and immutability. It's suitable for advanced undergraduates, graduate students, and professionals interested in functional programming paradigms. It offers a different perspective on recursion compared to imperative approaches.
Connects systems engineering with offensive network reconnaissance, detailing raw packet manipulation, Windows process injection, and reverse shell programming.
Provides a practical and easy-to-understand introduction to data structures and algorithms using Java. It explains concepts like linked lists with clear code examples and focuses on how they are used in real-world programming. It's a good resource for those who prefer a more hands-on approach and want to see how data structures are implemented in Java.
Provides a solid introduction to data structures using C++. It is often used as a textbook and includes numerous examples and exercises to help students understand the concepts and improve their programming skills.
Provides a concise and practical guide to essential algorithms and data structures. It covers linked lists and their practical applications, focusing on providing working code examples. It's a good reference for developers who need to quickly understand and implement algorithms.
Examines computational molecular biology through a programmer lens, illustrating genomic sequence alignment, phylogenetic modeling, and biochemical laboratory automation.
Explores data structures from the perspective of functional programming languages, which has implications for how their performance, including time complexity, is analyzed. It more specialized topic suitable for advanced students and researchers interested in functional programming paradigms and their algorithmic aspects.
This graduate-level textbook provides a comprehensive look at advanced data structures and their algorithmic considerations. It delves into complexities of data storage and covers specialized structures like interval trees. It's a dense but indispensable text for those needing a deep understanding of advanced topics, with code examples in C.
While not solely about recursion, this comprehensive discrete mathematics textbook covers recurrence relations and recursive definitions, which are foundational to understanding recursive algorithms. It provides the mathematical background necessary for analyzing recursion. This standard textbook for undergraduate computer science and mathematics students. It's valuable for building a strong theoretical understanding.
Focuses on teaching algorithms using the C programming language. It covers arrays as a data structure and explores their use in various algorithm implementations.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Data Structures and Algorithms in Python.
Algorithms for DNA Sequencing
Most relevant
Introduction to Graph Theory
Most relevant
Python for Patterns, Problems, Data Structures &...
Most relevant
Python Data Structures & Algorithms + LEETCODE Exercises
Most relevant
Algorithmic Thinking (Part 2)
Most relevant
Visualisation of Data Structures & Algorithms in Python
Most relevant
Python Exercises for Beginners: Solve 100+ Coding...
Most relevant
Complete Data Structures and Algorithms: Software...
Most relevant
Complete Python With DSA Bootcamp + LEETCODE Exercises
Most relevant

Udemy Buyer Protection & Guarantee

Verified partner policies & purchase protections

Global Marketplace Leader
Free Trial & Audit

Free Lecture Previews

Free preview video lectures available for all courses; optional 7-day free trial on Personal Plan subscriptions (cancel before trial ends to avoid conversion).

Return & Refund Policy

30-Day Money-Back Guarantee

30-day money-back guarantee on all eligible individual course purchases (provided course content has not been substantially consumed or downloaded). Subscription fees are non-refundable once billed.

Buyer Protections

Verified Academic & Industry Partner

Lifetime access to purchased individual courses and future updates, verifiable certificate of completion, and direct student Q&A forums.

Key Purchase Protections
30-day 100% money-back guarantee on course purchases
Lifetime access on web, mobile, and offline
Certificate of completion included with purchase
Direct instructor Q&A and active student community
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser