
Python with DSA Course
Master Python and Data Structures & Algorithms from the ground up — no shortcuts, no fluff. This course takes you from writing your first Python script to solving complex graph and dynamic programming problems. Whether you're targeting top tech companies or leveling up your engineering skills, this is the complete technical foundation you need.
What you will learn:
You will build a solid Python foundation covering syntax, collections, and object-oriented design before moving into core DSA topics. You will implement arrays, linked lists, stacks, queues, trees, and graphs entirely from scratch. You will analyse time and space complexity using Big-O notation for every major algorithm. You will master sorting, searching, recursion, and dynamic programming with real code. You will also practise competitive programming patterns and mock interview techniques designed to prepare you for technical hiring processes at top technology companies.
How you study in practice Python with DSA Course
How you practise Python with DSA 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 • 40 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsPython Programming Foundations
Python Programming Foundations
Lesson 1 • Functions and Scope
Defines reusable functions with parameters, return values, and scope rules. Prepares students to encapsulate DSA logic in clean, testable units.
Lesson 2 • Control Flow and Iteration
Teaches if/elif/else branching, for and while loops, and loop control statements. Enables students to express algorithmic logic in Python.
Lesson 3 • Error Handling and Debugging
Introduces exceptions, try/except blocks, and debugging tools. Equips students to write robust code and diagnose failures in complex programs.
Lesson 4 • Core Data Types and Variables
Covers integers, floats, strings, booleans, and type casting. Provides the data primitives used in every algorithm implementation ahead.
Lesson 5 • Setting Up the Python Environment
Install Python, configure a virtual environment, and choose an IDE. Establishes the toolchain every subsequent chapter depends on.
Chapter 2HideHide detailsSee detailsPython Collections and Comprehensions
Python Collections and Comprehensions
Lesson 1 • Iterators, Generators, and Lazy Evaluation
Explains the iterator protocol, generator functions, and yield. Enables memory-efficient traversal of large data sets in DSA problems.
Lesson 2 • Lists and Tuples in Depth
Explores indexing, slicing, mutation, and tuple immutability. These sequence types underpin array-based data structures covered later.
Lesson 3 • Dictionaries and Sets
Covers hash-based storage, key-value operations, and set algebra. Directly supports hash table and graph adjacency implementations.
Lesson 4 • List and Dictionary Comprehensions
Teaches concise comprehension syntax for filtering and transforming collections. Reduces boilerplate in algorithm implementations throughout the course.
Lesson 5 • Sorting, Searching, and Built-in Algorithms
Uses sorted(), min(), max(), and key functions to process collections. Bridges Python built-ins with the custom sorting algorithms studied next.
Chapter 3HideHide detailsSee detailsAlgorithm Analysis and Complexity
Algorithm Analysis and Complexity
Lesson 1 • Introduction to Algorithm Analysis
Defines algorithm correctness, efficiency, and the need for formal analysis. Sets the analytical mindset applied to every data structure and algorithm ahead.
Lesson 2 • Big-O, Big-Omega, and Big-Theta
Formalises asymptotic notation and common complexity classes. Provides the vocabulary used to describe every algorithm in subsequent chapters.
Lesson 3 • Analysing Loops and Recursive Calls
Teaches step-counting for loops and recurrence relations for recursion. Directly prepares students to analyse sorting and tree algorithms.
Lesson 4 • Profiling Python Code
Uses timeit, cProfile, and memory_profiler to measure real performance. Connects theoretical complexity to measurable Python execution behaviour.
Lesson 5 • Space Complexity and Trade-offs
Distinguishes auxiliary space from total space and explores time-space trade-offs. Guides design decisions when memory constraints matter.
Chapter 4HideHide detailsSee detailsLinear Data Structures
Linear Data Structures
Lesson 1 • Complexity Comparison of Linear Structures
Compares time and space complexity across all linear structures studied. Enables informed structure selection for algorithm design problems.
Lesson 2 • Singly and Doubly Linked Lists
Builds Node classes and list operations including insertion, deletion, and traversal. Introduces pointer-based thinking essential for trees and graphs.
Lesson 3 • Stacks: Implementation and Applications
Implements stacks using lists and linked lists, then applies them to real problems. Demonstrates LIFO semantics used in recursion, parsing, and backtracking.
Lesson 4 • Queues, Deques, and Priority Queues
Covers FIFO queues, double-ended deques, and heap-backed priority queues. Prepares students for BFS, scheduling, and greedy algorithm problems.
Lesson 5 • Arrays and Dynamic Arrays
Covers static arrays, Python lists as dynamic arrays, and amortised resizing. Establishes the baseline structure all other linear types extend.
Chapter 5HideHide detailsSee detailsRecursion and Sorting Algorithms
Recursion and Sorting Algorithms
Lesson 1 • Quadratic Sorting Algorithms
Implements bubble, selection, and insertion sort with step-by-step analysis. Provides the O(n²) baseline against which faster sorts are measured.
Lesson 2 • Searching Algorithms
Implements linear search and binary search with complexity proofs. Connects searching to sorted data requirements and real interview problems.
Lesson 3 • Recursion Fundamentals
Defines base cases, recursive cases, and the call stack. Builds the mental model required for tree traversal and divide-and-conquer algorithms.
Lesson 4 • Linear-Time and Hybrid Sorting
Covers counting sort, radix sort, and Timsort used in Python's built-in sort. Expands students' toolkit beyond comparison-based sorting.
Lesson 5 • Divide-and-Conquer Sorting
Implements merge sort and quicksort, deriving their O(n log n) complexity. Demonstrates how recursion enables efficient large-scale sorting.
Chapter 6HideHide detailsSee detailsTrees and Hierarchical Data Structures
Trees and Hierarchical Data Structures
Lesson 1 • Binary Search Trees
Implements BST insertion, search, and deletion with O(log n) average analysis. Demonstrates ordered data storage and retrieval using tree structure.
Lesson 2 • Tries and Prefix Trees
Constructs a trie for string insertion, search, and prefix matching. Enables efficient autocomplete and dictionary lookup solutions.
Lesson 3 • Binary Trees and Traversals
Defines tree terminology and implements in-order, pre-order, and post-order traversals. Establishes the recursive traversal pattern used in all tree algorithms.
Lesson 4 • Heaps and Heap Operations
Builds a max-heap and min-heap, implements heapify and heap sort. Directly supports priority queue and greedy algorithm implementations.
Lesson 5 • Balanced Trees: AVL and Red-Black
Explains rotation-based balancing in AVL trees and colour rules in red-black trees. Guarantees O(log n) worst-case performance for dynamic data sets.
Chapter 7HideHide detailsSee detailsGraphs and Graph Algorithms
Graphs and Graph Algorithms
Lesson 1 • Advanced Graph Problems
Covers strongly connected components, bipartite checking, and network flow basics. Extends graph skills to complex real-world problem categories.
Lesson 2 • Graph Representations and Terminology
Defines directed, undirected, weighted, and cyclic graphs with adjacency list and matrix representations. Establishes the foundation for all graph algorithm implementations.
Lesson 3 • Shortest Path Algorithms
Implements Dijkstra's and Bellman-Ford algorithms for weighted graphs. Equips students to solve routing and cost-minimisation problems.
Lesson 4 • Minimum Spanning Trees
Implements Kruskal's and Prim's algorithms using union-find and priority queues. Solves network design problems requiring minimum-cost connectivity.
Lesson 5 • Breadth-First and Depth-First Search
Implements BFS with a queue and DFS with recursion and a stack. Covers connected components, cycle detection, and topological sort.
Chapter 8HideHide detailsSee detailsDynamic Programming and Advanced Techniques
Dynamic Programming and Advanced Techniques
Lesson 1 • Greedy Algorithms and Backtracking
Implements greedy strategies for interval scheduling and Huffman coding, plus backtracking for N-Queens and subsets. Completes the core algorithm design toolkit.
Lesson 2 • Tabulation and Bottom-Up DP
Builds DP tables iteratively for coin change, climbing stairs, and grid paths. Eliminates recursion overhead and clarifies state transition logic.
Lesson 3 • Introduction to Dynamic Programming
Defines overlapping subproblems and optimal substructure as DP prerequisites. Contrasts DP with divide-and-conquer to clarify when each applies.
Lesson 4 • Memoisation and Top-Down DP
Converts naive recursion to memoised solutions using dictionaries and functools.lru_cache. Demonstrates dramatic complexity reduction on Fibonacci and similar problems.
Lesson 5 • Classic DP Patterns
Solves knapsack, longest common subsequence, and edit distance problems. Teaches reusable DP templates applicable to a wide range of interview questions.
Your valid completion certificate
This course is for you:
Career changer: wants a structured technical foundation to enter software engineering roles.
Computer science student: needs hands-on coding practice beyond what lectures provide.
Self-taught developer: can build apps but struggles with algorithmic problem-solving under pressure.
Data analyst: ready to deepen programming skills toward engineering-level responsibilities.
Recent graduate: preparing for technical interviews at competitive technology companies soon.
Hobbyist programmer: curious about how professional-grade software systems are actually designed internally.
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




















