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

Coursera

Advanced Data Structures & Algorithms in Practice

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. Unlock the complexities of advanced data structures and algorithms in this course designed for those eager to strengthen their understanding and skills in computational problem solving. By learning through theoretical concepts and practical coding challenges, you will gain expertise in heaps, binary search trees, dynamic programming, disjoint sets, graphs, bit manipulation, recursion, and segment trees. This course provides in-depth explanations and hands-on exercises to ensure you can implement these structures and algorithms efficiently. Starting with heaps, you'll delve into their implementation, operations, and practical applications like finding the kth largest element. As you progress, you’ll master binary search trees (BST), dynamic programming approaches for optimization problems, and dive deep into graph traversal techniques such as BFS and DFS. You'll also study advanced topics like the disjoint-set data structure, bit manipulation tricks, recursion, and segment trees for range queries. This comprehensive course is structured to help you develop the skills needed to tackle real-world computational problems with optimized solutions. Each module is packed with problem-solving challenges and coding exercises to reinforce your learning. You’ll progress step by step, gaining a solid foundation before tackling more complex algorithmic problems and real-world scenarios. This course is ideal for computer science enthusiasts, aspiring software developers, and those looking to deepen their knowledge in data structures and algorithms. While the content is suitable for intermediate learners, a basic understanding of programming and algorithms is recommended. By the end of the course, you will be able to implement and optimize advanced data structures such as heaps, binary search trees, and segment trees, solve dynamic programming and graph-related problems, and apply bit manipulation and recursion techniques in coding challenges.

Syllabus

  • Heaps Theory + Practice Problems
    • In this module, we will introduce the heap data structure and its crucial role in optimizing algorithmic solutions. You will learn how to implement heap operations like insertion, deletion, and heapify in Python. Additionally, you will apply these concepts to solve real-world practice problems involving heaps.
  • Binary Search Tree
    • In this module, we will explore the binary search tree (BST) and its properties, focusing on insertion, deletion, and searching. You will learn how to implement a BST in Python and solve problems such as finding the kth smallest element and validating a BST structure.
  • Dynamic Programming
    • In this module, we will dive into dynamic programming and its techniques for solving optimization problems. You will learn key strategies such as memoization and tabulation, applying these to solve various problems like coin change and longest palindromic substring.
  • Disjoint Set Data Structure and Union Find Algorithms
    • In this module, we will cover the disjoint set data structure and explore how union and find operations can be optimized using techniques like path compression. You will implement these concepts in Python and solve related problems efficiently.
  • Graphs
    • In this module, we will introduce graph theory and guide you through the implementation of different graph types and traversal algorithms. You will also solve a wide range of graph problems, including cycle detection, shortest path algorithms, and topological sorting.
  • Bit Manipulation
    • In this module, we will learn about bitwise operators and their practical applications in problem-solving. You will gain hands-on experience solving problems like finding missing numbers, reversing integers, and counting bits using bit manipulation.
  • Recursion & Backtracking
    • In this module, we will explore recursion and backtracking techniques to solve problems that involve multiple possible solutions, such as the N-Queens problem. You will learn to implement both recursive and backtracking solutions to optimize your problem-solving skills.
  • Strings
    • In this module, we will focus on string manipulation techniques and algorithms. You will work through problems like finding the minimum number of parentheses to add for validation and grouping anagrams efficiently.
  • Advanced Data Structures - Segment Tree
    • In this module, we will explore segment trees and their ability to efficiently solve range query problems. You will learn to build a segment tree and implement functions to handle queries and updates, optimizing performance for large datasets.

Taught by

Packt - Course Instructors

Reviews

Start your review of Advanced Data Structures & Algorithms in Practice

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.