VOOZH about

URL: https://www.coursera.org/learn/packt-foundations-of-data-structures-algorithms-in-python-0odnl

⇱ Foundations of Data Structures & Algorithms in Python | Coursera


Foundations of Data Structures & Algorithms in Python

Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Foundations of Data Structures & Algorithms in Python

Included with

β€’

Learn more

Ask Coursera

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

1 week to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

1 week to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Gain a solid understanding of time and space complexities and how to analyze them.

  • Master common data structures like arrays, lists, and linked lists for problem-solving.

  • Learn sorting algorithms and implement them in Python for optimizing solutions.

  • Develop problem-solving skills by solving real-world coding challenges on platforms like Leetcode.

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

April 2026

Assessments

7 assignments

Taught in English

Build your subject-matter expertise

This course is part of the DSA In Python + Top 130 Leetcode Problems for MAANG Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 6 modules in this course

This course features Coursera Coach!

A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this comprehensive course, you'll build a strong foundation in data structures and algorithms using Python. By exploring time and space complexity, recursion, and a variety of data structures like arrays, lists, linked lists, and hash tables, you will develop the problem-solving skills necessary for success in coding interviews. Through hands-on practice and problem-solving techniques, you’ll enhance your understanding of core concepts such as sorting algorithms and their real-world applications. The course progresses in an organized and practical way, starting with time and space complexities, followed by key data structures and algorithms in Python. You'll tackle real-world challenges and dive deep into Leetcode problems, applying your knowledge to solve them efficiently. Whether it's mastering sorting algorithms like bubble sort, quicksort, or merge sort, or learning to handle linked list operations, you'll gain a complete understanding of these crucial topics. As you advance through the course, you'll also explore advanced topics such as hash table collision resolution and recursive algorithms. Throughout the course, you will be guided through each concept with practical examples and problem-solving strategies. This course is ideal for beginners and intermediate learners who want to solidify their understanding of Python and data structures. No prior experience is required, but familiarity with basic programming concepts will be helpful. By the end of the course, you will be able to implement common data structures in Python, calculate time and space complexity for algorithms, solve coding challenges, and confidently approach technical interviews.

In this module, we will introduce essential strategies to sharpen your problem-solving skills and boost your coding efficiency. We will also provide key insights on acing DSA interviews and navigating Leetcode challenges for practice.

What's included

4 videos2 readings

4 videosβ€’Total 20 minutes
  • How to Improve Problem-Solving Skills?β€’8 minutes
  • How to Code Fast!β€’4 minutes
  • How to Ace Your DSA Interview?β€’4 minutes
  • How to Get Started with Leetcode?β€’4 minutes
2 readingsβ€’Total 20 minutes
  • Introduction to the Course 'Foundations of Data Structures & Algorithms in Python'β€’10 minutes
  • Full Specialization Resourceβ€’10 minutes

In this module, we will lay the foundation for understanding time and space complexity, exploring their role in analyzing algorithm efficiency. You will also learn how to calculate and apply these complexities in various algorithmic scenarios, including recursion.

What's included

11 videos1 assignment

11 videosβ€’Total 79 minutes
  • Introduction to Time & Space Complexityβ€’6 minutes
  • What Is Big O Notationβ€’8 minutes
  • Checking if Big-O Notation Is Acceptable in Interviewsβ€’11 minutes
  • Calculating Time Complexity Part 1β€’10 minutes
  • Calculating Time Complexity Part 2β€’9 minutes
  • Myths About Time Complexityβ€’3 minutes
  • Calculating Time Complexity of Recursive Algorithmβ€’7 minutes
  • Recursion Time Complexity Example 2β€’9 minutes
  • Introduction to Space Complexityβ€’6 minutes
  • Space Complexity Example 1β€’8 minutes
  • Space Complexity Example 2β€’3 minutes
1 assignmentβ€’Total 15 minutes
  • Time & Space Complexity - Assessmentβ€’15 minutes

In this module, we will explore the core concepts of arrays and lists in Python. You will learn how to use these structures to solve coding challenges, along with advanced list operations that can optimize your solutions in algorithmic tasks.

What's included

13 videos1 assignment

13 videosβ€’Total 121 minutes
  • What Are Arrays and Why Are They So Fast?β€’7 minutes
  • What Are Some Drawbacks of Using Arraysβ€’6 minutes
  • How Do Resizable Arrays Work?β€’7 minutes
  • Using Lists in Pythonβ€’11 minutes
  • Advanced List Operators - Part 1β€’11 minutes
  • Advanced List Operators - Part 2β€’7 minutes
  • Leetcode #485 - Max Consecutive Ones - Pythonβ€’6 minutes
  • Leetcode #121 - Best Time to Buy and Sell Stock - Pythonβ€’9 minutes
  • Leetcode #238 - Product of Array Except Self - Pythonβ€’8 minutes
  • Leetcode #189 - Rotate Array - Pythonβ€’12 minutes
  • Leetcode #53 - Maximum Sum Subarray - Pythonβ€’9 minutes
  • Leetcode #152 - Maximum Product Subarray - Pythonβ€’11 minutes
  • Leetcode #36 - Valid Sudoku - Pythonβ€’17 minutes
1 assignmentβ€’Total 15 minutes
  • Arrays & Lists in Python - Assessmentβ€’15 minutes

In this module, we will dive deep into sorting algorithms, including both theoretical concepts and practical implementations. You will also learn how to optimize sorting techniques for various real-world applications and coding problems.

What's included

21 videos1 assignment

21 videosβ€’Total 169 minutes
  • Why Is Sorting Important?β€’4 minutes
  • Introduction to Sortingβ€’5 minutes
  • Bubble Sort Theoryβ€’8 minutes
  • Bubble Sort Implementationβ€’6 minutes
  • Selection Sort Theoryβ€’5 minutes
  • Selection Sort Implementationβ€’6 minutes
  • Insertion Sort Theoryβ€’8 minutes
  • Insertion Sort Implementationβ€’8 minutes
  • Merge Sort Part 1 - How to Merge Two Sorted Arraysβ€’11 minutes
  • Merge Sort Part 2 - Merge Two Sorted Arrays Implementationβ€’7 minutes
  • Merge Sort Part 3 - Merge Sort Theoryβ€’7 minutes
  • Merge Sort Part 4 - Implementationβ€’13 minutes
  • Quick Sort Part 1 - Partitioning Algorithm Theoryβ€’11 minutes
  • Quick Sort Part 2 - Partitioning Algorithm Implementationβ€’3 minutes
  • Quick Sort Part 3 - Understanding How Quick Sort Worksβ€’5 minutes
  • Quick Sort Part 4 - Quick Sort Implementationβ€’13 minutes
  • Counting Sort Part 1 - How Does Counting Sort Work and Its Importanceβ€’17 minutes
  • Counting Sort Part 2 - Implementationβ€’6 minutes
  • Leetcode #283 - Move Zeroes - Pythonβ€’7 minutes
  • Leetcode #169 - Majority Element - Pythonβ€’11 minutes
  • Leetcode #75 - Sort Colors - Pythonβ€’9 minutes
1 assignmentβ€’Total 15 minutes
  • Sorting - Assessmentβ€’15 minutes

In this module, we will introduce linked lists as an alternative to arrays, focusing on their structure and manipulation. You will learn essential operations and solve common linked list problems, preparing you for complex coding challenges.

What's included

18 videos1 assignment

18 videosβ€’Total 160 minutes
  • Drawback of Arraysβ€’6 minutes
  • What Is Linked Listβ€’11 minutes
  • Linked List Basic Implementationβ€’7 minutes
  • Linked List - Insert at Topβ€’7 minutes
  • Linked List - Insert at Endβ€’6 minutes
  • Linked List - Insert in Middleβ€’11 minutes
  • Linked List - Delete at Topβ€’4 minutes
  • Linked List - Delete at End Part 1β€’3 minutes
  • Linked List - Delete at End Part 2β€’1 minute
  • Practice Problem 1 - Intersection of Two Linked Listsβ€’10 minutes
  • Practice Problem 2 - Merge Two Sorted Listsβ€’11 minutes
  • Practice Problem 3 - Linked List Cycleβ€’10 minutes
  • Practice Problem 4 - Reverse Linked Listβ€’10 minutes
  • Practice Problem 5 - Palindrome Linked Listβ€’29 minutes
  • Practice Problem 6 - Linked List Cycle IIβ€’8 minutes
  • Practice Problem 7 - Find Middle of the Linked Listβ€’5 minutes
  • Practice Problem 8 - Add Two Numbersβ€’7 minutes
  • Practice Problem 9 - Remove Nth Node from End of Listβ€’14 minutes
1 assignmentβ€’Total 15 minutes
  • Linked Lists - Assessmentβ€’15 minutes

In this module, we will explore the concept of hash tables, including their implementation and collision resolution strategies. You will gain practical experience in solving coding problems efficiently using hash tables as the underlying data structure.

What's included

11 videos1 reading3 assignments

11 videosβ€’Total 90 minutes
  • Introduction to Hash Tableβ€’6 minutes
  • How Does Hash Table Workβ€’8 minutes
  • Hash Table Collision Resolutionβ€’9 minutes
  • Types of Hash Tablesβ€’4 minutes
  • Unordered Hash Table in Pythonβ€’8 minutes
  • Ordered Hash Table in Pythonβ€’2 minutes
  • Practice Problem 1 - Contains Duplicateβ€’2 minutes
  • Practice Problem 2 - Group Anagramsβ€’6 minutes
  • Practice Problem 3 - Two Sumβ€’9 minutes
  • Practice Problem 4 - Three Sumβ€’24 minutes
  • Practice Problem 5 - Longest Consecutive Sequenceβ€’12 minutes
1 readingβ€’Total 10 minutes
  • Conclusion to the Course 'Foundations of Data Structures & Algorithms in Python'β€’10 minutes
3 assignmentsβ€’Total 90 minutes
  • Hash Table Collision Resolution - Assessmentβ€’15 minutes
  • Full Course Assessmentβ€’60 minutes
  • Full Course Practice Assessmentβ€’15 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

Packt
1,926 Coursesβ€’560,010 learners

Explore more from Data Analysis

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

Foundations of Data Structures & Algorithms in Python" is a course designed to teach the fundamental concepts of data structures and algorithms, with practical Python implementations. It is highly relevant because these concepts are essential for solving complex problems efficiently and are frequently tested in technical interviews for software development roles. Mastering these concepts helps improve problem-solving abilities and coding efficiency, which are crucial for becoming a skilled programmer and acing coding interviews.

This course provides a deep dive into essential data structures like arrays, linked lists, hash tables, and sorting algorithms. It also covers important algorithmic concepts such as time and space complexity, recursion, and Big O notation. The course includes hands-on examples, coding challenges, and real-world applications to ensure that learners not only understand the theory but can also apply it in coding scenarios such as those found on Leetcode.

Upon completing this course, you will be able to confidently solve problems that involve data structures and algorithms using Python. You will understand how to implement and optimize various data structures, analyze algorithm efficiency, and solve common coding challenges. The skills gained from this course will prepare you for coding interviews and enable you to write more efficient, optimized code in real-world applications.

This course assumes that you have a basic understanding of Python programming. Familiarity with basic programming concepts such as variables, loops, functions, and conditionals will be helpful. If you're new to Python, it is recommended that you first get comfortable with the basics of the language before enrolling in the course. No prior knowledge of data structures or algorithms is required, as the course covers everything from scratch.

This course is ideal for beginners to intermediate programmers, particularly those looking to strengthen their understanding of data structures and algorithms. It’s also perfect for those preparing for coding interviews or software engineering assessments. If you are an aspiring developer or someone looking to improve your problem-solving skills, this course will provide the foundational knowledge you need.

The course consists of approximately 12 hours of video content. Depending on your pace, it can be completed in about 4 to 6 weeks. This time frame includes watching the lectures and completing coding challenges and exercises. You can expect to spend a few hours each week on the course, ensuring that you grasp each concept and apply it through hands-on practice.

Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.

If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.

Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.

If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.

This course is currently available only to learners who have paid or received financial aid, when available.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,