Choose your language
Data Structures and Algorithms Course
More than 2 million learners worldwide

Data Structures and Algorithms Course

Master every major data structure and algorithm you need to crack technical interviews and build high-performance software. This course takes you from memory fundamentals all the way to dynamic programming, graph algorithms, and NP-completeness. Whether you're preparing for FAANG interviews or leveling up your engineering skills, this is the most complete DS&A resource available.

Dedika for businesses

What you will learn:

You will build a deep, practical understanding of data structures including arrays, linked lists, trees, graphs, and hash tables. You will learn to analyze algorithm efficiency using Big-O, Big-Theta, and Big-Omega notation. The course covers sorting, searching, recursion, backtracking, and divide-and-conquer strategies in full detail. You will implement shortest-path and minimum spanning tree algorithms on weighted graphs. Dynamic programming techniques, greedy algorithms, and advanced structures like segment trees and tries are also included. By the end, you will recognize problem patterns quickly and write optimized solutions under pressure.

How you study in a practical way Data Structures and Algorithms Course

How you practice Data Structures and Algorithms Course

For companies who want to train their team

With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

8 Chapters • 41 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Foundations of Data Structures

  • Lesson 1 • Hash Tables and Hashing Basics

    Introduces key-value storage via hash functions and bucket arrays. Prepares students for collision handling and average-case performance analysis.

  • Lesson 2 • Arrays and Dynamic Arrays

    Introduces contiguous memory storage and index-based access. Connects static arrays to dynamic resizing strategies used in real implementations.

  • Lesson 3 • Linked Lists and Pointer Chains

    Teaches node-based storage using pointers or references. Contrasts linked lists with arrays to clarify trade-offs in insertion and traversal.

  • Lesson 4 • Memory, Variables, and Data Types

    Covers how data is stored in memory and how primitive types differ. Establishes the mental model needed for all subsequent structure analysis.

  • Lesson 5 • Stacks and Queues

    Defines LIFO and FIFO access patterns and their implementations. Grounds abstract behavior in array-based and linked-list-based realizations.

Chapter 2See details

Algorithm Analysis and Complexity

  • Lesson 1 • Empirical Benchmarking Techniques

    Bridges theoretical analysis with measured runtime experiments. Students design controlled benchmarks to validate or challenge theoretical predictions.

  • Lesson 2 • Space Complexity and Trade-offs

    Analyzes auxiliary space usage alongside time costs. Highlights classic time-space trade-offs that guide practical algorithm selection.

  • Lesson 3 • Recurrence Relations

    Introduces recurrences as a tool for analyzing recursive algorithms. Covers the Master Theorem and substitution methods for solving them.

  • Lesson 4 • Big-O, Big-Theta, and Big-Omega

    Defines asymptotic notations and their mathematical meaning. Provides the vocabulary used throughout the course for comparing algorithm performance.

  • Lesson 5 • Time Complexity Analysis

    Teaches step-counting and worst-, average-, and best-case analysis. Connects loop structures and recursion to their corresponding complexity classes.

Chapter 3See details

Sorting Algorithms

  • Lesson 1 • Elementary Comparison Sorts

    Covers bubble, selection, and insertion sort with full complexity analysis. Establishes baseline intuition before introducing more efficient approaches.

  • Lesson 2 • Divide-and-Conquer Sorts

    Teaches merge sort and quicksort using recursive decomposition. Connects recurrence analysis from Chapter 2 to real sorting performance.

  • Lesson 3 • Sorting Algorithm Selection

    Synthesizes all sorting knowledge into a decision framework. Students match algorithm choice to input size, data distribution, and memory constraints.

  • Lesson 4 • Linear-Time Sorting Algorithms

    Presents counting sort, radix sort, and bucket sort as non-comparison methods. Clarifies the conditions under which linear time is achievable.

  • Lesson 5 • Heap Sort and Priority Queues

    Introduces the binary heap structure and its use in sorting. Bridges heap operations to the priority queue abstraction used in later algorithms.

Chapter 4See details

Searching and Recursion Patterns

  • Lesson 1 • Memoization and Top-Down DP

    Extends recursion with result caching to eliminate redundant computation. Serves as a bridge to the full dynamic programming chapter that follows.

  • Lesson 2 • Linear and Binary Search

    Contrasts sequential and divide-based search on sorted and unsorted data. Establishes the preconditions and complexity guarantees of each approach.

  • Lesson 3 • Divide and Conquer Strategy

    Formalizes the divide-conquer-combine paradigm beyond sorting. Students apply it to problems like maximum subarray and closest pair of points.

  • Lesson 4 • Backtracking Techniques

    Introduces systematic search with pruning via backtracking. Connects recursive call trees to constraint satisfaction and combinatorial problems.

  • Lesson 5 • Recursion Fundamentals

    Defines base cases, recursive calls, and call-stack behavior. Provides the conceptual foundation for tree traversal and divide-and-conquer chapters ahead.

Chapter 5See details

Trees and Binary Search Trees

  • Lesson 1 • Binary Tree Fundamentals

    Defines tree terminology, node relationships, and structural properties. Grounds all subsequent tree algorithms in a shared vocabulary and mental model.

  • Lesson 2 • Red-Black Trees and B-Trees

    Covers red-black coloring rules and multi-way B-tree structure. Connects these to database indexing and file system use cases.

  • Lesson 3 • AVL Trees and Rotations

    Introduces height-balanced AVL trees and the four rotation cases. Students implement self-balancing to guarantee O(log n) operations.

  • Lesson 4 • Tree Traversal Algorithms

    Covers inorder, preorder, postorder, and level-order traversals. Connects traversal choice to specific output requirements and downstream algorithms.

  • Lesson 5 • Binary Search Tree Operations

    Implements search, insertion, and deletion in a BST with full analysis. Highlights how tree shape affects performance and motivates balancing.

Chapter 6See details

Graphs: Representation and Traversal

  • Lesson 1 • Depth-First Search

    Implements DFS recursively and iteratively with discovery and finish times. Connects DFS to cycle detection, topological sort, and connected components.

  • Lesson 2 • Topological Sorting

    Derives topological order from DFS finish times and Kahn's algorithm. Applies ordering to dependency resolution and task scheduling problems.

  • Lesson 3 • Graph Terminology and Representations

    Defines vertices, edges, directed vs. undirected, and weighted graphs. Compares adjacency matrix and adjacency list representations by space and access cost.

  • Lesson 4 • Breadth-First Search

    Implements BFS using a queue and analyzes its O(V+E) complexity. Applies BFS to shortest-path finding in unweighted graphs.

  • Lesson 5 • Connected Components and Bridges

    Identifies strongly and weakly connected components using DFS-based algorithms. Introduces bridge and articulation point detection for network reliability analysis.

Chapter 7See details

Graph Algorithms: Shortest Paths and MST

  • Lesson 1 • Minimum Spanning Trees: Kruskal

    Builds MSTs by greedily adding minimum-weight edges using Union-Find. Analyzes correctness via the cut property and cycle property of MSTs.

  • Lesson 2 • Dijkstra's Shortest Path Algorithm

    Implements Dijkstra using a min-heap priority queue with O((V+E) log V) complexity. Covers correctness proof via the greedy relaxation invariant.

  • Lesson 3 • All-Pairs Shortest Paths

    Solves shortest paths between every vertex pair using Floyd-Warshall. Analyzes the O(V³) dynamic programming formulation and path reconstruction.

  • Lesson 4 • Minimum Spanning Trees: Prim

    Grows an MST from a seed vertex using a priority queue in Prim's algorithm. Contrasts Prim with Kruskal by graph density and implementation complexity.

  • Lesson 5 • Bellman-Ford and Negative Weights

    Extends shortest-path to graphs with negative edge weights using Bellman-Ford. Detects negative-weight cycles that make shortest paths undefined.

Chapter 8See details

Dynamic Programming

  • Lesson 1 • Classic 1D DP Problems

    Solves Fibonacci, climbing stairs, and coin change using 1D DP tables. Builds table-filling intuition before advancing to 2D formulations.

  • Lesson 2 • DP on Trees and Graphs

    Applies DP to tree structures and DAGs for advanced optimization problems. Covers tree DP for diameter, independent sets, and DP on DAG paths.

  • Lesson 3 • Knapsack and Subset Problems

    Solves 0/1 knapsack, unbounded knapsack, and subset sum with DP tables. Connects these to resource allocation and feasibility decision problems.

  • Lesson 4 • Classic 2D DP Problems

    Extends DP to two-dimensional tables for string and grid problems. Covers edit distance, LCS, and grid path counting with full recurrence derivations.

  • Lesson 5 • Space Optimization in DP

    Reduces DP table space from O(n²) to O(n) or O(1) using rolling arrays. Applies space optimization to knapsack, LCS, and edit distance.

  • Lesson 6 • DP Principles and Problem Identification

    Defines optimal substructure and overlapping subproblems as DP prerequisites. Teaches a systematic method for recognizing DP-solvable problems.

Certification

Your valid completion certificate

This course is for you:

  • Software developer: wants to fill gaps left by self-teaching or bootcamp training.

  • Computer science student: needs structured practice beyond what lectures alone provide.

  • Career changer: moving into software engineering from a non-technical professional background.

  • Backend engineer: ready to optimize systems but lacks formal algorithmic foundations.

  • Competitive programmer: building a reliable toolkit for timed problem-solving challenges.

  • Data engineer: needs stronger algorithmic grounding to design efficient data pipelines.

What our students say

Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of my interest without needing to change platforms... I thank you for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can switch chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top trainings

FAQs

Who is Dedika?

Is the certificate valid in the Philippines?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course