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
This course is part of DSA In Python + Top 130 Leetcode Problems for MAANG Specialization
Included with
Learn more
Ask Coursera
Recommended experience
Recommended experience
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.
Skills you'll gain
Tools you'll learn
Details to know
April 2026
7 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- 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
Offered by
Explore more from Data Analysis
- Status: Free Trial
Specialization
- Status: Free Trial
Course
- Status: Free Trial
Why people choose Coursera for their career
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.
More questions
Financial aid available,
