
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 are preparing for FAANG interviews or levelling up your engineering skills, this is the most complete DS&A resource available.
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 analyse 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 recognise problem patterns quickly and write optimised solutions under pressure.
How you study in practice Data Structures and Algorithms Course
How you practise Data Structures and Algorithms Course
For companies looking to train their teams
With Dedika for businesses, the course includes exercises and examples tailored to your company and its specific needs.
Course content
8 Chapters • 41 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsFoundations of Data Structures
Foundations of Data Structures
Lesson 1 • Hash Tables and Hashing Basics
Introduces key-value storage via hash functions and bucket arrays. Prepares learners for collision handling and average-case BI 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 behaviour in array-based and linked-list-based realisations.
Chapter 2HideHide detailsSee detailsAlgorithm Analysis and Complexity
Algorithm Analysis and Complexity
Lesson 1 • Empirical Benchmarking Techniques
Bridges theoretical analysis with measured runtime experiments. Learners design controlled benchmarks to validate or challenge theoretical predictions.
Lesson 2 • Space Complexity and Trade-offs
Analyses 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 analysing 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 BI 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 3HideHide detailsSee detailsSorting Algorithms
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 BI performance.
Lesson 3 • Sorting Algorithm Selection
Synthesises all sorting knowledge into a decision framework. Learners 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 4HideHide detailsSee detailsSearching and Recursion Patterns
Searching and Recursion Patterns
Lesson 1 • Memoisation 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
Formalises the divide-conquer-combine paradigm beyond sorting. Learners 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 behaviour. Provides the conceptual foundation for tree traversal and divide-and-conquer chapters ahead.
Chapter 5HideHide detailsSee detailsTrees and Binary Search Trees
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 colouring 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. Learners 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 BST performance and motivates balancing.
Chapter 6HideHide detailsSee detailsGraphs: Representation and Traversal
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 analyses 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 7HideHide detailsSee detailsGraph Algorithms: Shortest Paths and MST
Graph Algorithms: Shortest Paths and MST
Lesson 1 • Minimum Spanning Trees: Kruskal
Builds MSTs by greedily adding minimum-weight edges using Union-Find. Analyses 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. Analyses 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 8HideHide detailsSee detailsDynamic Programming
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 optimisation 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 Optimisation in DP
Reduces DP table space from O(n²) to O(n) or O(1) using rolling arrays. Applies space optimisation 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 recognising DP-solvable problems.
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 optimise 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 lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.

Top qualifications
FAQ
Who is Dedika?
Is the certificate valid in South Africa?
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




















