Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Foundations of Data Structures & Algorithms

Packt via Coursera

Overview

Google, IBM & Meta Certificates — All 10,000+ Courses at 40% Off
One annual plan covers every course and certificate on Coursera. 40% off for a limited time.
Get Full Access
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.

Syllabus

  • Course Introduction
    • 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.
  • Time & Space Complexity Analysis
    • 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.
  • Arrays Theory + Array Practice Problems from Leetcode
    • 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.
  • Sorting Theory + Sorting Practice Problems
    • 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.
  • Linked Lists
    • 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.
  • Hash Table Theory + Leetcode Practice Problems
    • 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.
  • Stacks
    • 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.
  • Queue
    • 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.

Taught by

Packt - Course Instructors

Reviews

Start your review of Foundations of Data Structures & Algorithms

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.