We may earn an affiliate commission when you visit our partners.
Joe James

This course combines conceptual lectures to explain how a data structure works, and code lectures that walk through how to implement a data structure in Python code. All the code lectures are based on Python 3 code in a Jupyter notebook. All the code and presentations are available for download on Github.

Data structures covered in this course include native Python data structures String, List, Tuple, Set, and Dictionary, as well as Stacks, Queues, Heaps, Linked Lists, Binary Search Trees, and Graphs.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • An in-depth look at native python data structures: strings, lists, tuples, sets and dictionaries
  • Intro to queues, stacks, heaps, linked lists, binary search trees and graphs
  • How each data structure works and how to implement and use them in python
  • Pros and cons of each data structure

Syllabus

In this section you will learn to use Python's built-in data structures: String, List, Tuple, Set and Dictionary.

Welcome to Python Data Structures! This brief introduction tells what topics we'll cover and why they're important.

Read more

Learn to use common features of Sequence types (Strings, Lists and Tuples), including indexing, slicing, iterating, counting, summation, checking membership, sorting, etc.

Learn detailed features of Python's built-in data structures, Lists, Tuples, Sets and Dictionaries. This lesson uses a series of code examples in a Jupyter notebook that is easy to follow.

Learn to use Python's powerful List Comprehensions to create new lists.

Test your knowledge of Python's native data structures covered in section 1.

Introduction to Stacks, and their key operations, push, pop and peek. This lecture also covers key use cases for stacks, and demonstrates how to implement a stack in Python.

Introduction to Queues, their key operations, primary use cases, and how to implement a queue in Python.

This lecture explains the Heap data structure, its key operations (push, peek and pop), how the heap works, and how to implement a MaxHeap in Python.

Test your knowledge of queues, stacks and heaps.

Learn what a Linked List is, what key operations it supports, and learn how to implement a Linked List in Python.

This lecture explains how Circular Link Lists work, how they differ from regular linked lists, and how to implement them in Python.

Learn about Doubly (bi-directional) Linked Lists, how they work, and how to implement in Python.

Test what you learned about Linked Lists.

Learn what trees are, key terminology related to trees, how the key operations for binary search trees work, and the advantages of trees.

This lecture shows how to implement a binary search tree in Python.

A few easy questions on Trees.

This lecture explains what graphs are used for, the difference between directed and undirected graphs, and explains conceptually how graphs can be implemented using adjacency lists or an adjacency matrix.

This lecture explains how to implement a Graph data structure in Python using Adjacency Lists.

This lecture explains how to implement a Graph data structure in Python using an Adjacency Matrix.

Test your knowledge of the concepts of graphs. Implementation details are not covered in this quiz.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers native Python data structures, which are fundamental for efficient data manipulation and algorithm design, and are essential for building a strong foundation in programming
Explores stacks, queues, heaps, linked lists, binary search trees, and graphs, which are essential data structures for solving complex problems in computer science and software development
Uses Python 3 code in a Jupyter notebook, which is a standard environment for data analysis and scientific computing, making it easy to follow along and experiment with the code examples
Teaches how to implement data structures in Python, which is a valuable skill for understanding how these structures work under the hood and for customizing them to specific needs
Requires familiarity with Python, so learners without prior experience may need to complete an introductory Python course before taking this course to ensure a solid foundation
Includes quizzes to test knowledge of the concepts of graphs, but implementation details are not covered, which may require additional study for practical application

Save this course

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

Reviews summary

Python data structures essentials

According to learners, this course provides a strong foundational understanding of both native Python data structures and common abstract ones like Stacks, Queues, Trees, and Graphs. Students particularly praise the clear conceptual explanations followed by practical Python code implementations in Jupyter notebooks. The course is seen as an excellent starting point for understanding how these structures work and how to use them effectively in Python. While it offers a solid introduction, some reviewers suggest that more advanced or optimized implementations of certain structures might require further study elsewhere. The structure is logical and easy to follow, making complex topics accessible.
Content progresses in a logical way.
"The syllabus is well-structured, starting with native types and then moving to more complex structures."
"Each section builds nicely on the previous one, making the learning flow very smooth."
"Appreciated the logical order of topics presented."
"The progression from conceptual to coding examples is effective."
Excellent starting point for topic.
"This course is a great starting point for understanding fundamental data structures and their implementation in Python."
"It gives you a solid base to build upon if you want to learn more advanced algorithms later."
"Perfect for someone new to data structures or wanting to see them implemented in Python."
"Provides a really good foundational understanding."
Hands-on coding reinforces learning.
"The Python code examples in the Jupyter notebooks were incredibly helpful for understanding the implementation side."
"Coding along with the instructor is a great way to solidify the concepts learned in the lectures."
"Implementing the data structures in Python makes the theory much more concrete and applicable."
"The practical coding part is the strength of this course."
Complex concepts are explained simply.
"The instructor explains the concepts very clearly, making it easy to grasp how each data structure works before diving into the code."
"Really appreciated the conceptual lectures - they provide a solid foundation before moving to the implementation details."
"Complex topics like trees and graphs were broken down into understandable pieces."
"The conceptual explanation before coding is very helpful."
May need supplemental advanced material.
"While it covers the basics well, some sections felt a bit brief and could benefit from more depth, especially on efficiency or variations."
"The coverage of graphs was an introduction; I needed other resources for a deeper understanding of graph algorithms."
"Good overview, but don't expect a deep dive into optimized implementations for all structures."
"Might need additional study for more complex data structure problems."

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 Python Data Structures A to Z with these activities:
Review Python Fundamentals
Solidify your understanding of Python fundamentals to better grasp the data structure implementations covered in the course.
Browse courses on Python Syntax
Show steps
  • Review basic Python syntax and data types.
  • Practice writing simple Python functions.
  • Work through introductory Python tutorials.
Review 'Grokking Algorithms'
Use a visually-oriented book to reinforce your understanding of data structures and algorithms.
Show steps
  • Read the chapters related to the data structures covered in the course.
  • Pay attention to the illustrations and examples.
  • Try to explain the concepts in your own words.
Review 'Data Structures and Algorithms in Python'
Supplement the course material with a comprehensive textbook on data structures and algorithms in Python.
Show steps
  • Read the chapters corresponding to the data structures covered in the course.
  • Work through the examples and exercises in the book.
  • Compare the book's implementations with those presented in the course.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Data Structure Visualization
Solidify your understanding of data structure operations by creating a visual representation of how they work.
Show steps
  • Choose a data structure and a specific operation (e.g., inserting into a binary search tree).
  • Create a diagram or animation that illustrates the steps involved in the operation.
  • Add annotations to explain each step.
  • Share your visualization with others and solicit feedback.
Implement Data Structures from Scratch
Reinforce your understanding of data structures by implementing them from scratch without relying on built-in Python libraries.
Show steps
  • Choose a data structure (e.g., Stack, Queue, Linked List).
  • Implement the core operations of the data structure.
  • Write unit tests to verify the correctness of your implementation.
  • Compare your implementation with the course's implementation.
Build a Simple Application Using Data Structures
Apply your knowledge of data structures by building a simple application that utilizes them.
Show steps
  • Choose a simple application (e.g., a task manager, a simple calculator, or a basic search engine).
  • Identify the data structures that would be most suitable for the application.
  • Implement the application using the chosen data structures.
  • Test the application thoroughly.
Contribute to a Python Data Structures Library
Deepen your understanding of data structures by contributing to an open-source Python library that implements them.
Show steps
  • Find an open-source Python data structures library on GitHub.
  • Identify a bug or a missing feature.
  • Implement the fix or the new feature.
  • Submit a pull request with your changes.

Career center

Learners who complete Python Data Structures A to Z will develop knowledge and skills that may be useful to these careers:
Algorithm Developer
An algorithm developer specializes in designing and implementing efficient algorithms for various applications. This course helps build a foundation for understanding and implementing fundamental data structures, which are the building blocks of algorithms. Exposure to stacks, queues, heaps, linked lists, binary search trees, and graphs may be useful for an algorithm developer to design and optimize new algorithms. The course's focus on Python implementation provides the practical skills needed to translate theoretical knowledge into working code. The extensive coverage of different data structures provides a strong foundation for algorithm development.
Data Engineer
A data engineer builds and maintains the infrastructure for data storage and processing. This course helps build a foundation for understanding and implementing efficient data pipelines. Knowledge of data structures, including lists, tuples, sets, dictionaries, and graphs, is crucial for optimizing data storage and retrieval. A data engineer can leverage the ability to implement and manipulate data structures in Python to build scalable and reliable data infrastructure. The practical coding examples in the course provide valuable hands-on experience for handling real-world data engineering challenges.
Software Engineer
A software engineer designs, develops, and tests software applications. This course helps build a foundation for understanding and implementing data structures in Python, a crucial skill for any software engineer. Specifically, understanding lists, dictionaries, stacks, queues, and trees is essential for efficient algorithm design and problem-solving. The practical coding examples in Jupyter notebooks directly translate to real-world software development scenarios. Mastering these concepts through this course allows a software engineer to write cleaner, more efficient, and maintainable code. The course provides exposure to graphs which may be useful as well.
Backend Developer
A backend developer works on the server-side logic and databases that power web applications. This course helps build a foundation for efficient data management and processing, which are core responsibilities of a backend developer. Understanding data structures like lists, dictionaries, and graphs, along with their implementations in Python, is essential for building scalable and robust backend systems. The knowledge gained from this course can be applied to optimize database queries, manage application state, and handle complex data relationships. A backend developer can leverage this course to write more performant and maintainable server-side code.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights and build predictive models. This course helps build a foundation in data structures, which is essential for efficient data manipulation and analysis. Understanding Python's native data structures, as well as stacks, queues, and heaps discussed in this course, enables a data scientist to optimize data processing workflows and implement custom algorithms. A data scientist can leverage the ability to implement data structures to build models and to wrangle data more effectively. This course provides a solid foundation for handling complex data challenges.
Full-Stack Developer
A full stack developer works on both the front-end and back-end of web applications. This course helps build a foundation on how to manage data efficiently on the back end. A full stack developer can leverage the skills to implement data structures in Python, which aids in optimizing data storage and retrieval, which is crucial for building scalable web applications. The course's hands-on coding examples provide practical experience for handling real-world web development challenges. Knowledge of queues may be useful when designing efficient user interfaces.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. This course helps build a foundation in data structures, which is crucial for optimizing model performance and handling large datasets. Knowledge of Python's data structures, as well as stacks, queues, heaps, linked lists, binary search trees, and graphs may be useful for a machine learning engineer when implementing custom algorithms and optimizing data pipelines. The course's focus on implementation in Python and the use of Jupyter notebooks directly supports the practical skills needed for success. A machine learning engineer can leverage the ability to implement data structures to improve model efficiency.
AI Developer
An AI developer builds artificial intelligence applications, often using machine learning and deep learning techniques. This course helps build a foundation with implementing and using data structures, essential for efficient data handling and algorithm design. Knowledge of data structures, including graphs and trees, as well as Python's native structures, contributes to a more nuanced approach in AI development. AI developers can leverage this course to build custom models and optimize existing algorithms, facilitating innovation in the field. This background may be useful when a model requires customization.
Data Analyst
A data analyst collects, cleans, and analyzes data to provide insights and support decision-making. This course helps build a foundation in understanding and manipulating data using Python's built-in data structures. A data analyst can leverage the knowledge of lists, tuples, sets, and dictionaries to efficiently process and analyze datasets. The course's emphasis on using these data structures within Python provides a practical skillset. This, in turn, may help a data analyst to ask deeper questions of data.
Research Scientist
A research scientist conducts research in various fields, often involving data analysis and algorithm development. This course helps build a foundation for understanding and implementing data structures, which is essential for designing and optimizing algorithms. Exposure to stacks, queues, heaps, linked lists, binary search trees, and graphs may be useful for a research scientist to efficiently process and analyze data. The course's focus on Python implementation makes it a useful tool for conducting research in fields that require computational analysis.
Game Developer
A game developer creates video games for various platforms. This course helps build a foundation for optimizing game performance through efficient data management. Understanding data structures, such as graphs (for pathfinding) and trees (for game AI), may be useful for a game developer to optimize game mechanics and improve performance. A game developer can leverage the ability to implement these data structures in Python using libraries such as Pygame or Unity's Python capabilities. The knowledge gained from this course supports the technical skills needed for game development.
Quantitative Analyst
A quantitative analyst, often working in finance, develops and implements mathematical models for financial analysis and risk management. This course helps build a foundation for implementing these models efficiently. Exposure to data structures, such as lists, queues, and binary search trees, may be useful for a quantitative analyst to process and analyze financial data. The course's focus on Python implementation makes it particularly valuable for quantitative analysts who rely on Python for their modeling and analysis tasks.
Embedded Systems Engineer
An embedded systems engineer designs and develops software for embedded systems, which are specialized computer systems within devices. This course helps build a foundation for efficient data management in resource-constrained environments. Exposure to data structures, such as linked lists and queues, may be useful for an embedded systems engineer to optimize memory usage and processing speed. The course's focus on implementation provides insights into how data structures can be adapted for specific hardware constraints. An advanced degree (master's or phd) might be needed for this position.
Database Administrator
A database administrator (DBA) is responsible for managing and maintaining databases. While this course doesn't directly cover database administration, understanding data structures may be useful for optimizing database performance and designing efficient database schemas. Knowledge of trees, graphs, and linked lists may be useful for a DBA when working with complex data relationships and indexing strategies. The course's exploration of data structures in Python can help a DBA write more efficient queries and perform better data analysis.
DevOps Engineer
A DevOps engineer automates and streamlines software development and deployment processes. While this course doesn't directly cover DevOps practices, understanding data structures may be useful for optimizing infrastructure management and automation scripts. Knowledge of data structures like queues may be useful for a DevOps engineer when managing job queues and task scheduling. The course's exploration of Python can help in writing more efficient automation scripts.

Reading list

We've selected two 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 Python Data Structures A to Z.
Provides a comprehensive introduction to data structures and algorithms, with a focus on Python implementations. It covers a wide range of topics, including those discussed in the course, such as lists, trees, graphs, and heaps. It's suitable as a textbook or a reference for students and professionals alike, offering detailed explanations and code examples.
Grokking Algorithms visually engaging and easy-to-understand guide to algorithms and data structures. While not exclusively focused on Python, it uses Python-like pseudocode to illustrate concepts, making it accessible to beginners. It's particularly helpful for grasping the fundamental principles behind data structures before diving into Python-specific implementations.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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