VOOZH about

URL: https://www.coursera.org/learn/packt-foundations-of-data-structures-and-algorithms-pnfqd

⇱ Foundations of Data Structures & Algorithms | Coursera


Foundations of Data Structures & Algorithms

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

Foundations of Data Structures & Algorithms

Included with

Ask Coursera

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

Recommended experience

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

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

Recommended experience

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

What you'll learn

  • Master key data structures like arrays, linked lists, and hash tables.

  • Develop strong problem-solving skills for coding challenges and interviews.

  • Learn to calculate time and space complexity and optimize algorithms.

  • Gain hands-on experience with practical Leetcode problems and algorithm implementations.

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

April 2026

Assessments

10 assignments

Taught in English

Build your subject-matter expertise

This course is part of the Data Structures & Algorithms in Java + 150 Leetcode Problems 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 8 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. Embark on a journey to master core data structures and algorithms with a comprehensive curriculum designed for problem-solving. You'll begin by learning the fundamentals of data structures like arrays, linked lists, and hash tables, before diving into essential algorithms like sorting, stacks, and queues. Each module builds upon the last, ensuring you acquire the skills necessary to approach coding problems with confidence and speed. The course progresses by guiding you through various challenges and interview-style questions, supported by real-world examples and coding exercises from Leetcode. From understanding time and space complexity to implementing and optimizing algorithms, you'll gain a robust understanding of how to approach technical interviews and develop efficient solutions. This course is ideal for beginners or those looking to refresh their understanding of key data structures and algorithms. It will help you build the foundation needed for both interviews and real-world coding challenges. Prerequisites include a basic understanding of programming concepts, particularly in Java. The course is suitable for individuals seeking to enhance their technical proficiency in coding interviews. By the end of the course, you will be able to confidently solve data structure and algorithm problems, efficiently calculate time and space complexity, implement core algorithms, and optimize solutions for real-world coding challenges.

In this module, we will guide you through essential steps to kickstart your Leetcode journey, enhance your problem-solving skills, and boost your coding performance. You’ll also learn the key strategies for tackling DSA interviews with confidence. By the end, you’ll be well-prepared to solve coding challenges and ace technical interviews.

What's included

4 videos2 readings1 assignment

4 videosTotal 20 minutes
  • Introduction to Specialization4 minutes
  • How to improve problem-solving skills?8 minutes
  • How To Code Fast in an interview!4 minutes
  • How to ace your DSA Interview?4 minutes
2 readingsTotal 20 minutes
  • Introduction to the Course 'Foundations of Data Structures & Algorithms'10 minutes
  • Full Specialization Resource10 minutes
1 assignmentTotal 15 minutes
  • Course Introduction - Assessment15 minutes

In this module, we will explore the foundational concepts of time and space complexity and their role in evaluating algorithms. You’ll learn how to calculate time and space complexity for both iterative and recursive algorithms through practical examples. By the end of this module, you will have a strong grasp on Big O notation and how it’s used in interviews to assess algorithm efficiency.

What's included

13 videos1 assignment

13 videosTotal 74 minutes
  • Introduction to Time & Space Complexity5 minutes
  • What is Big O Notation?6 minutes
  • Calculating Time Complexity Example 17 minutes
  • Checking If Big O Notation Is Acceptable in Interviews9 minutes
  • Calculating Time Complexity Example 27 minutes
  • Myth About Time Complexity3 minutes
  • Calculating Time Complexity of Recursive Cases7 minutes
  • Recursive Time Complexity Example 29 minutes
  • Time Complexity Live Demonstration3 minutes
  • Introduction To Space Complexity5 minutes
  • Calculating Space Complexity6 minutes
  • Recursive Space Complexity Example 14 minutes
  • Recursive Space Complexity Example 23 minutes
1 assignmentTotal 15 minutes
  • Time & Space Complexity Analysis - Assessment15 minutes

In this module, we will dive into the theory behind arrays, exploring their efficiency and common limitations. You’ll also learn essential Java array methods and their practical applications. Alongside theory, we’ll tackle a range of Leetcode practice problems that focus on array manipulation, from finding maximum sums to solving Sudoku, ensuring you’re prepared for technical interviews.

What's included

15 videos1 assignment

15 videosTotal 113 minutes
  • What are arrays and why are they so fast!6 minutes
  • Drawbacks of using Arrays5 minutes
  • How do resizable arrays work?6 minutes
  • Important Array Methods In Java Part 14 minutes
  • Important Array Methods In Java Part 25 minutes
  • Important Array Methods In Java Part 38 minutes
  • Practice Problem 1 - Maximum Sum Subarray9 minutes
  • Practice Problem 2 - Best Time To Buy And Sell A Stock8 minutes
  • Practice Problem 3 - Maximum Product Subarray11 minutes
  • Practice Problem 4 - Product Of Array Except Self7 minutes
  • Practice Problem 5 - Rotate Array10 minutes
  • Practice Problem 6 - Max Consecutive Ones5 minutes
  • Practice Problem 7 - Valid Sudoku14 minutes
  • Practice Problem 8 - K Closest Points To Origin5 minutes
  • Practice Problem 9 - Encode and Decode Strings11 minutes
1 assignmentTotal 15 minutes
  • Arrays Theory + Array Practice Problems from Leetcode - Assessment15 minutes

In this module, we will explore the theory and practice of sorting algorithms, from basic methods like Bubble Sort and Selection Sort to more advanced techniques like Merge Sort and Quick Sort. You will implement these algorithms in Java and understand their inner workings. Additionally, we’ll solve Leetcode practice problems to reinforce your skills in applying sorting algorithms to real-world coding challenges.

What's included

21 videos1 assignment

21 videosTotal 168 minutes
  • Why is sorting important?4 minutes
  • Introduction To Sorting5 minutes
  • Bubble Sort Theory8 minutes
  • Bubble Sort Implementation7 minutes
  • Selection Sort Theory5 minutes
  • Selection Sort Implementation6 minutes
  • Insertion Sort Theory8 minutes
  • Merge Sort Part 1 - How to merge two sorted arrays11 minutes
  • Merge Sort Part 2 - Merging Two Sorted Arrays Implementation4 minutes
  • Merge Sort Part 3 - Theory7 minutes
  • Merge Sort Implementation9 minutes
  • Quick Sort Part 1 - Partitioning Algorithm11 minutes
  • Quick Sort Part 2 - Understanding how quick sort works5 minutes
  • Counting Sort Part 1 - Theory17 minutes
  • Counting Sort - Implementation19 minutes
  • How is counting sort made stable?3 minutes
  • Radix Sort - Theory5 minutes
  • Radix Sort - Implementation7 minutes
  • Leetcode #283 - Move Zeroes - Java5 minutes
  • Leetcode #75 - Sort Colors - Java9 minutes
  • Leetcode #169 - Majority Element - Java12 minutes
1 assignmentTotal 15 minutes
  • Sorting Theory + Sorting Practice Problems - Assessment15 minutes

In this module, we will explore the structure of linked lists, from the basics of singly linked lists to the more advanced doubly linked lists. You will learn to implement, iterate, and modify linked lists using Java. Additionally, we will dive into practical problems, solving real-world challenges like detecting cycles, reversing lists, and merging lists, providing hands-on experience with this essential data structure.

What's included

24 videos1 assignment

24 videosTotal 168 minutes
  • Drawback Of Arrays4 minutes
  • What Is Linked List8 minutes
  • Implementing Linked Lists4 minutes
  • Iterating Over Linked Lists4 minutes
  • Inserting In Linked List6 minutes
  • Deleting From Front In Linked List3 minutes
  • What Is Doubly Linked List2 minutes
  • Linked List Class In Java3 minutes
  • Creating Linked Lists1 minute
  • Using Iterators To Iterate3 minutes
  • Contains1 minute
  • Iterating In Reverse Order1 minute
  • Add Methods In Linked List4 minutes
  • Removal Methods In Linked Lists3 minutes
  • Practice Problem 1 - Intersection Of Two Linked Lists19 minutes
  • Practice Problem 2 - Merge Two Sorted Lists11 minutes
  • Practice Problem 3 - Linked List Cycle8 minutes
  • Practice Problem 4 - Reverse Linked List10 minutes
  • Practice Problem 5 - Palindrome Linked List29 minutes
  • Practice Problem 6 - Linked List Cycle II7 minutes
  • Practice Problem 7 - Find Middle Of The Linked List6 minutes
  • Practice Problem 8 - Remove Nth Node From End Of List11 minutes
  • Practice Problem 9 - Add Two Numbers13 minutes
  • Practice Problem 10 - Reorder List7 minutes
1 assignmentTotal 15 minutes
  • Linked Lists - Assessment15 minutes

In this module, we will explore the core concept of hash tables, how they function, and their practical applications in solving algorithmic problems. You’ll learn about collision resolution, different types of hash tables, and how to leverage them to solve real-world problems. Through Leetcode practice problems, you’ll gain hands-on experience applying hash tables to challenges like detecting duplicates, grouping anagrams, and finding missing integers.

What's included

12 videos1 assignment

12 videosTotal 118 minutes
  • What Is Hash Table5 minutes
  • How does a hash table work?6 minutes
  • Hash Table Collision Resolution7 minutes
  • Types Of Hash Table4 minutes
  • Hash Table Usage9 minutes
  • Practice Problem 1 - Contains Duplicate2 minutes
  • Practice Problem 2 - Two Sum9 minutes
  • Practice Problem 3 - Valid Anagram3 minutes
  • Practice Problem 4 - Group Anagrams9 minutes
  • Practice Problem 5 - Longest Consecutive Sequence24 minutes
  • Practice Problem 6 - Three Sum22 minutes
  • Practice Problem 7 - First Missing Positive18 minutes
1 assignmentTotal 15 minutes
  • Hash Table Theory + Leetcode Practice Problems - Assessment15 minutes

In this module, we will introduce the stack data structure and its critical role in various algorithms and applications. You’ll learn how to implement stacks in Java and use them to solve real-world problems, including evaluating mathematical expressions and finding the next greater element. With practice problems from Leetcode, you’ll gain hands-on experience solving challenging tasks using stacks effectively.

What's included

6 videos1 assignment

6 videosTotal 60 minutes
  • Introduction to Stacks7 minutes
  • Using Stacks In Java3 minutes
  • Practice Problem 1 - Valid Parenthesis10 minutes
  • Practice Problem 2 - Min Stack12 minutes
  • Practice Problem 3 - Next Greater Element II19 minutes
  • Practice Problem 4 - Evaluate Reverse Polish Notation9 minutes
1 assignmentTotal 15 minutes
  • Stacks - Assessment15 minutes

In this module, we will introduce the queue data structure, explaining its key features and applications in algorithms. You’ll learn how to implement a queue in Java, both through arrays and linked lists, and explore how to use it for efficient data management. By the end of this module, you will be well-equipped to use queues in various coding challenges and problem-solving contexts.

What's included

3 videos1 reading3 assignments

3 videosTotal 17 minutes
  • Introduction to Queue4 minutes
  • How Is Queue Implemented8 minutes
  • Using Queue In Java5 minutes
1 readingTotal 10 minutes
  • Conclusion to the Course 'Foundations of Data Structures & Algorithms'10 minutes
3 assignmentsTotal 90 minutes
  • Queue - Assessment15 minutes
  • Full Course Assessment60 minutes
  • Full Course Practice Assessment15 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 Algorithms

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

Data structures and algorithms (DSA) are fundamental concepts in computer science that help in organizing and processing data efficiently. DSA is critical for optimizing code performance and is widely used in software development, machine learning, and system design. Mastering DSA allows you to build scalable and efficient systems, solve complex problems, and excel in technical interviews.

This course focuses on building a strong foundation in data structures and algorithms. It covers essential topics like time and space complexity, arrays, sorting algorithms, linked lists, hash tables, stacks, and queues. Through theoretical lessons and practical problem-solving on platforms like Leetcode, you'll gain deep insights into algorithm design and analysis, which are critical for solving real-world programming challenges.

Upon completing this course, you will have a comprehensive understanding of the most commonly used data structures and algorithms. You will be able to efficiently solve algorithmic problems, analyze the time and space complexity of algorithms, and apply these techniques to real-world coding problems. This knowledge will prepare you for technical interviews and help you build more efficient software systems.

To get the most out of this course, a basic understanding of programming concepts and proficiency in a programming language like Java is required. Familiarity with basic math concepts such as exponentiation, logarithms, and simple data structures (like arrays) will also be helpful but is not mandatory. The course starts with foundational concepts and gradually builds up to more complex topics.

This course is designed for intermediate learners who are interested in enhancing their problem-solving skills in data structures and algorithms. It is ideal for aspiring software engineers, computer science students, and anyone preparing for coding interviews. Whether you are new to DSA or looking to refine your knowledge, this course will guide you step by step.

The course includes 12 hours of video content. The time required to complete the course depends on your prior experience and how much time you dedicate to studying each week. On average, you can expect to finish the course in a few weeks if you follow a consistent study schedule.

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,