Data Structures & Algorithms Diploma

Two complete versions: Python and C++

Analyze complexity (Complexity Analysis) and build data structures by hand: Linked Lists, Trees, Hash Tables and Graphs, then move on to algorithms and dynamic programming. The diploma comes in two complete versions, Python and C++, so you study in the language you started with.

Taught by Dr. Mostafa Saad Ibrahim
Senior Vision Engineer, NVIDIA
Python and C++ tracksLevel: intermediate
70lectures
90hours
200+problems with explained solutions
2complete versions
Diploma content
Illustration of the Data Structures & Algorithms diploma content

Watch the free lectures now

Data Structures & Algorithms Diploma · 5 free lectures

We'll only send you the link to the free lectures.
Illustration of the Data Structures & Algorithms diploma content
Now watching: the free lectures
Browse the curriculum
Learning outcomes

What you'll learn

  • Analyze the time and memory efficiency of any solution with Big-O notation.
  • Build dynamic arrays, linked lists, stacks and queues by hand.
  • Build binary trees, binary search trees and balanced AVL trees, plus heaps and tries.
  • Understand hash tables and apply sorting and binary search.
  • Represent graphs and apply DFS, BFS, topological sort and shortest-path algorithms.
  • Solve dynamic programming problems methodically: Knapsack, LIS, LCS, range and counting problems.
  • Study in the language you prefer: a complete Python version and a complete C++ version.
  • Practice on more than 200 problems with explained solutions, including LeetCode problems, to prepare for technical interviews and programming contests.
Who will teach you?
Dr. Mostafa Saad Ibrahim speaking to CSkilled studentsNVIDIA · PhD, SFU
Dr. Mostafa Saad IbrahimSenior Vision Engineer, NVIDIA
Who will teach you?

Dr. Mostafa Saad Ibrahim

He has worked in AI for 15 years across research and engineering, and has published papers at CVPR and ECCV with more than 1,000 combined citations. He has taught programming since 2006 and runs a leading Arabic competitive programming channel on YouTube with more than 134 thousand subscribers.

Why he teaches this diploma himself

  • ICPC World Finalist, and coach and judge in programming competitions
  • Connects the material to what programmers need in real work
  • Head of the judging committee for programming contests in Egypt and Jordan (ECPC and ACPC)
+years teaching
+Courses & diplomas
+students
Full instructor profile
Detailed learning roadmap

Full curriculum in two versions

Pick the version in the language you prefer; each one has a complete curriculum. After the lessons come homework and practice problems, with video walkthroughs of the solutions. 5 lectures are free so you can judge the teaching before you decide.

01Welcome1 lecture
Python DSA – Curriculum & Q&A
02Arrays4 lectures
What and Why – Arrays
Array Capacity Trick
Array Insertion and ADT
Array Homework Discussion
03Complexity2 lectures
Complexity 1
Complexity 2
04Singly Linked List5 lectures
Singly Linked List 1 - Intuition
Singly Linked List 1 - Traversal
Singly linked list 2 - Homework 1 and 2 Discussion
Singly linked list 2 - Homework 3 Discussion
Singly linked list 2 - Homework 4 Discussion
05Doubly Linked List2 lectures
Doubly Linked List 1 - Homework 1
Doubly Linked List 1 - Homework 2
06Stack5 lectures
Stack 1 - homework1
Stack 2 - homework2
Stack 3 - Infix to Postfix
Stack 3 - Infix to Postfix
Stack 4 - homework 3 and 4
07Queue2 lectures
Queue
Queue - 3 homework solving
08Binary Tree14 lectures
Binary Tree - Definitions
Binary Tree - Traversal 1 2
Binary Tree - Traversal 3
Binary Tree - Info
Binary Tree - Homework 1
Binary Tree - Creation - Homework 2
Binary Tree - LeetCode 1448 Solution
Binary Tree - Level Order Traversal
Binary Tree - Homework 3
Binary Tree - Generation - Unique Representation 1
Binary Tree - Unique Representation 2
Binary Tree - Homework 5 - 3 Medium Challenges Problems
Homework 5 - Problem 1-2 Solution
Homework 5 - Problem 3 Solution
09Binary Search Tree6 lectures
BST Intro - LeetCode 108-235-426
BST Successor
BST Successor Code - Remaining of homework 1
BST Deletion
BST Deletion
BST Homework 2 3 4
10Heap4 lectures
Heap-insertion
Heap - Creation and Deletion
Heap - Homework 1 and 2
Heap - LeetCode 703
11Trie3 lectures
Trie 1 - intro
Trie 2 - Homework 2 and 3
Trie 3 - Homework 3
12AVL Tree3 lectures
AVL
AVL Homework p1-p5
AVL Homework p6
13Hash Tables13 lectures
Hash Method
Hash Table
Hash Chain Impl
Hashtable - Probing
Hashtable - Probing Impl
Hashtable - Homework 1 - 3 Medium Challenges
Hashtable - Homework 1 - Solution p1 - hash string
Hashtable - Homework 1 - Solution p2 - hash object
Hashtable - Homework 1 - Solution p3 - rehashing
Hashtable - Homework 2 - 5 Medium Challenges
Hashtable - Homework 2 - Solution p1 p2 p3 live
Hashtable - Homework 2 - Solution p4 - linked list
Hashtable - Homework 2 - Solution p5 - quadratic
14Sorting7 lectures
Sorting - Insertion Sort
Selection Sort - Count Sort
Count Sort Code
Sorting Homework 1
Sorting Homework 2
Sorting Homework 3 - p1 p2
Sorting Homework 3 - p2 p3
15Binary Search7 lectures
Binary Search - int range
Binary Search 1 - Homework 1 - LeetCode 34
Binary Search 1 - Homework 1 - LeetCode 436
Binary Search 2 - Generalization - Homework 2 - LeetCode 1283 1482 611
Binary Search 3 - Homework 3 - LeetCode 475 1060 668
Binary Search on Real Values - Homework 4 p1 p2
Binary Search Homework 4 - Solution P3
16Graph Representation3 lectures
Graph Terminology
Adjacency and List Representation
Homework 1-2-3
17Graph DFS6 lectures
DFS Algorithm
DFS on Matrix - LeetCode 690 1034 1254
DFS Homework Solutions LeetCode 582 323 1905 1559
DFS Reduction - Edge Classification
DFS Reduction LeetCode 1743-1202-128
DFS Homework 4 - LeetCode 785 1466 1631
18Graph BFS7 lectures
BFS algo
BFS Code
BFS Correctness
BFS - LeetCode 261 1306 2059
BFS - LeetCode[1306-2059-752-286]
BFS - LeetCode [417,1215,1129,365]
BFS - LeetCode [773,934,1245]
19Graph Topological Sort3 lectures
Topological Sort
Topological Sort - LeetCode[444, 310]
Topological Sort Problems
20Dynamic Programming13 lectures

Part 1

DP Intro
Knapsack intro
Knapsack 2
LIS
LCS
Pick Or Leave Solving LeetCode [416, 309, 1671]
LeetCode [1691, 198]
Bruteforcing Choices edit distance
Bruteforcing Choices Integer break - LeetCode 279

Part 2

DP Ranges
DP Ranges Solving - LeetCode [1105, 1043, 1547]
DP LeetCode [746, 1312, 312]
DP Counting - LeetCode [518, 377]
01Welcome3 lectures
Welcome - Q&A
Basics Structure Classes and Pointers Review
FreeDS Intro - Vector1
02Vector7 lectures
FreeVector 2

Homework Videos

Vector Homework 5 Medium Challenge
HW1 - Sol - p1
HW1 - Sol - p2
HW1 - Sol - p3
HW1 - Sol - p4
HW1 - Sol - p5
03Complexity2 lectures
Complexity 1
Complexity 1
04Singly Linked List30 lectures
Singly-LinkedList 1
Singly-LinkedList 2

SLL Homework 1 - 6 Easy Challenges

SLL Homework 1 - 6 Easy Challenges
SLL Homework 1 - Solutions p1
SLL Homework 1 - Solutions p2
SLL Homework 1 - Solutions p3
SLL Homework 1 - Solutions p4
SLL Homework 1 - Solutions p5
SLL Homework 1 - Solutions p6

SLL Homework 2 - 5 Easy to Medium Challenges

SLL Homework 2 - 5 Easy to Medium Challenges
SLL Homework 2 - Solution p1
SLL Homework 2 - Solution p2
SLL Homework 2 - Solution p4 delete even
SLL Homework 2 - Solution p3 - reverse
SLL Homework 2 - Solution p5 sorted

SLL Homework 3 - 6 Medium Challenges

SLL Homework 3 - Solution p1 - swap
SLL Homework 3 - Solution p2 - rotate left
SLL Homework 3 - Solution p3 - remove duplicate
SLL Homework 3 - Solution p4 - last occurrence
SLL Homework 3 - Solution p5 - move to end
SLL Homework 3 - Solution p6 - max

SLL Homework 4 - 5 Medium to Hard Challenges

SLL Homework 4 - 5 Medium to Hard Challenges
SLL Homework 4 - Solution p1 - arrange even odd
SLL Homework 4 - Solution p2 - alternate
SLL Homework 4 - Solution p3 - add
SLL Homework 4 - Solution p4 - remove dup
SLL Homework 4 - Solution p5 - reverse k

From the live Python DSA sessions

Singly linked list 2 - Homework 1 and 2 Discussion
Singly linked list 2 - Homework 3 Discussion
Singly linked list 2 - Homework 4 Discussion
05Doubly Linked List11 lectures
Doubly Linked List

DLL Homework 1 - 4 Easy to Medium Challenges

DLL Homework 1 - 4 Easy to Medium Challenges
DLL Homework 1 - Solution p1 - delete key
DLL Homework 1 - Solution p2 - delete even positions
DLL Homework 1 - Solution p3 - delete odd positions
DLL Homework 1 - Solution p4 - palindrome

DLL Homework 2 - 4 Medium to Hard Challenges

DLL Homework 2 - 4 Medium to Hard Challenges
DLL Homework 2 - Solution p1 - middle
DLL Homework 2 - Solution p2 - swap k
DLL Homework 2 - Solution p3
DLL Homework 2 - Solution p4
06Stack21 lectures
Stack 1
Stack 2

Stack Homework 1 - 6 Easy to Medium Challenges

Stack Homework 1 - 6 Easy to Medium Challenges
Stack Homework 1 - Solution p1
Stack Homework 1 - Solution p2
Stack Homework 1 - Solution p3
Stack Homework 1 - Solution p4
Stack Homework 1 - Solution p5
Stack Homework 1 - Solution p6

Stack Homework 3 - 3 Medium Challenges

Stack Homework 3 - 3 Medium Challenges
Stack Homework 3 - Solution p2 - infix-postfix
Stack Homework 3 - Solution p3 - middle

Stack Homework 2 - 5 Medium to Hard Challenges

Stack Homework 2 - 6 Medium to Hard Challenges
Stack Homework 2 - Solution p1 - asteroid
Stack Homework 2 - Solution p2 - bottom
Stack Homework 2 - Solution p3 - reverse
Stack Homework 2 - Solution p4 - score
Stack Homework 2 - Solution p5 - greater

From the live Python DSA sessions

Stack 1 - homework1
Stack 2 - homework2
Stack 4 - homework 3 and 4
07Queue11 lectures
Queue

Queue Homework 1 - 2 Easy Challenges

Queue Homework 1 - 2 Easy Challenges
Queue Homework 1 - Solution p1 - deque
Queue Homework 1 - Solution p2 - stack using single queue

Queue Homework 2 - 2 Medium Challenges

Queue Homework 2 - 2 Medium Challenges
Queue Homework 2 - Solution p1 - dequeue O 1
Queue Homework 2 - Solution p2 - priority queue

Queue Homework 3 - 2 Hard Challenges

Queue Homework 3 - 2 Hard Challenges
Queue Homework 3 - Solution p1 - enqueue O 1
Queue Homework 3 - Solution p2 - stream k

From the live Python DSA sessions

Queue - 3 homework solving
08Binary Tree14 lectures
Binary Tree 1
Binary Tree 2
Binary tree
Problem-Solving - Is Full - Is Perfect - Diameter
Diameter Code - Level Order Traversal
Unique Representation

BT Homework 1 - 6 Easy Challenges

BT Homework 1 - 6 Easy Challenges
BT Homework 1 - Solution p3 - target sum
BT Homework 1 - Solution p4 - left leaves
BT Homework 1 - Solution p5 - cousins

BT Homework 3 - 3 Medium Challenges

BT Homework 3 - 3 Medium Challenges
BT Homework 3 - Solution p3 - duplicate subtrees

BT Homework 2 - 3 Medium to Hard Challenges

BT Homework 2 - 3 Medium to Hard Challenges
BT Homework 2 - Solution p2 - completeness
09Binary Search Tree11 lectures
BST Intro
BST Successor - deletion
BST Deletion

BST Homework 1 - 2 Easy Challenges

BST Homework 1 - 2 Easy Challenges
BST Homework 1 - 2 Easy Challenges - p1 - search iterative
BST Homework 1 - 2 Easy Challenges - p2 - sorted to bst

BST Homework 2 - 3 Medium Challenges

BST Homework 2 - 3 Medium Challenges
BST Homework 2 - 3 Medium Challenges - p1 - is bst
BST Homework 2 - 3 Medium Challenges - p2 - kth

BST Homework 3 - 3 Medium Challenges

BST Homework 3 - 3 Medium Challenges
BST Homework 3 - 3 Medium Challenges - p1 - from preorder
10Heap7 lectures
Heap

Heap Homework 1 - 5 Easy to Medium Challenges

Heap Homework 1 - 5 Easy to Medium Challenges
Heap Homework 1 - 5 Easy to Medium Challenges - p3 less than
Heap Homework 1 - 5 Easy to Medium Challenges - p4 is heap
Heap Homework 1 - 5 Easy to Medium Challenges - p5 heap sort inplace

Heap Homework 2 - 4 Medium to Hard Challenges

Heap Homework 2 - 4 Medium to Hard Challenges
Heap Homework 2 - 4 Medium to Hard Challenges - p2 p3
11Trie12 lectures
Trie - UVA problem

Homework Videos

Trie Homework 1 - 5 Easy to Medium Challenges
Trie Homework 1 - Solution p1 - iterative
Trie Homework 1 - Solution p2 - minimal word
Trie Homework 1 - Solution p3 - suffix
Trie Homework 1 - Solution p4 - map
Trie Homework 1 - Solution p4 - path
Trie Homework 2 - 3 Medium Challenges
Trie Homework 2 - Solution p1 - list all
Trie Homework 2 - Solution p2 - autocomplete
Trie Homework 3 - 2 Hard Challenges
Trie Homework 3 - p2 prefix suffix
12AVL Tree4 lectures
AVL

AVL Homework 1 - 3 Medium to Hard Challenges

AVL Homework 1 - 3 Medium to Hard Challenges
AVL Homework 1 - 3 Medium to Hard Challenges - p1 p2
AVL Homework 1 - 3 Medium to Hard Challenges - p3 inversions
13Hash Tables9 lectures
HashTable 1
HashTable 2

Homework Videos

Hash Homework 1 - 3 Medium Challenges
Hash Homework 1 - Solution p1 - hash string
Hash Homework 1 - Solution p2 - hash object
Hash Homework 1 - Solution p3 - rehashing
Hash Homework 2 - 5 Medium Challenges
Hash Homework 2 - Solution p1 - linked list
Hash Homework 2 - Solution p2 - quadratic
14Sorting3 lectures
Sorting 1
Sorting 2
Sorting 3 - problem solving
15Binary Search12 lectures
Binary Search 1
Binary Search 2
Binary Search 3 real values - Intro to graph

Homework Videos

Binary Search Homework 1 - 4 Medium Challenges
Binary Search Homework 1 - Solutions - p2 - LeetCode 436
Binary Search Homework 2 - 3 Medium Challenges
Binary Search Homework 2 - p3 - LeetCode 475
Binary Search Homework 3 - 2 Hard Challenges
Binary Search Homework 3 - Solutions p1 - LeetCode 1060
Binary Search Homework 3 - Solutions p2 - LeetCode 668
Binary Search Homework 4 - 3 Medium Challenges
Binary Search Homework 4 - Solution P3
16Graph (Part 1)33 lectures
Graph Representation - DFS
DFS on Matrix
DFS Reduction - Edge Classification
DFS Reduction
BFS
BFS
Topological Sort 1
Topological Sort 2

Graph Representation - Homework Videos

Graph Representation Homework 1 - 3 Easy Challenges
Graph Representation Homework 1 - Solutions
Graph Representation Homework 2 - 5 Medium Challenges
Graph Representation Homework 2 - Solutions p1 p2
Graph Representation Homework 2 - Solutions p3 p4

DFS - Homework Videos

DFS Homework 1 - 3 Easy Problems
DFS Homework 1 - 3 Easy Problems - solutions
DFS Homework 2 - 4 Medium Problems
DFS Homework 2 - Solution p3- leetcode 1254
DFS Homework 2 - Solution p3- leetcode 1559
DFS Homework 4 - 4 Hard Problems
DFS Homework 4 - Solution p1 - LeetCode 785
DFS Homework 4 - Solution p2 - LeetCode 1466
DFS Homework 4 - Solution p3 - LeetCode 1631
DFS Homework 4 - Solution p4 cycles in graph

BFS - Homework Videos

BFS Homework 1 - 3 Easy Problems
BFS Homework 1 - Solutions
BFS Homework 2 - 3 Medium Problems
BFS Homework 2 - Solutions
BFS Homework 3 - 3 Medium Problems
BFS Homework 3 - Solutions
BFS Homework 4 - 3 Medium to Hard Challenges
BFS Homework 4 - Solutions
BFS Homework 5 - 2 Hard Challenges
BFS Homework 5 - Solutions
17Dynamic Programming36 lectures
DP Intro - Knapsack intro
Knapsack 2
LIS
LCS
Pick Or Leave Solving
Brute-forcing edit distance
Integer break
DP Ranges
DP Ranges Solving
DP Counting
DP on Grid
Build Output
Tabulation 2

DP pick or leave - Homework

DP pick-or-leave homework 1 - 3 Medium Challenges
DP pick-or-leave homework 1 - Solutions - p3 - 1691
DP pick-or-leave homework 2 - 3 Medium to Hard Challenges
DP pick-or-leave homework 2 - Solution p1 - 198

DP Enumerating the choices - Homework

DP choices Homework 1 - 2 Easy to Medium Challenges
DP choices Homework 1 - Solution p1 - 746

DP Range Patterns - Homework

DP ranges Homework 1 - 3 Medium Challenges
DP ranges Homework 1 - Solution p3 - 1312
DP ranges Homework 2 - 2 Hard Challenges

DP Counting - Homework

DP Counting Homework 1 - 4 Medium Challenges
DP Counting Homework 1 - Solution p3 - 1155
DP Counting Homework 1 - Solution p4 - 823

DP Grid - Homework

DP on Grid Homework 1 - 4 Medium to Hard Challenges
DP on Grid Homework 1 - Solution p1 - 933
DP on Grid Homework 1 - Solution p4 - 174

DP Building Output - Homework

Building DP Output Homework 1 - 3 Medium Challenges
Building DP Output Homework 1 - Solution p1 - lis v2
Building DP Output Homework 1 - Solution p3 - mcm

DP Tabulation - Homework

DP Tabulation Homework 1 - 4 Easy to Medium Challenges
DP Tabulation Homework 1 - Solution p1
DP Tabulation Homework 1 - Solution p2
DP Tabulation Homework 1 - Solution p3
DP Tabulation Homework 1 - Solution p4
18Backtracking2 lectures
Backtracking 1
Backtracking 2
19Divide and Conquer2 lectures
Merge and Quick Sort
Complexity
20Graph (Part 2)6 lectures
Graph - Floyd
Graph - BellmanFord
Graph - Dijkstra 1
Graph - Dijkstra 2 - Node split
Graph - MST - Prim
Graph - MST - Kruskal
21Recursive Functions Review2 lectures
Recursive Function
Pass by Reference - Recursive functions
Skills & tools

What you'll take away from this diploma

Tools

PythonC++LeetCode

Concepts

Big-OLinked ListsStacksQueuesBinary Search TreesAVL TreesHeapsTriesHash TablesSortingBinary SearchDFSBFSTopological SortDynamic Programming

Prerequisites

Solid programming in Python or C++, including recursion and object-oriented programming

Why CSkilled instead of scattered resources?

A comparison between learning from scattered resources and learning from one integrated curriculum.

Scattered resources (YouTube / generic courses / bootcamps)

  • Depth and curriculum: Scattered content with no clear order, so you get lost between levels.
  • Practice: Few problems, often without explained solutions, and small, incomplete projects.
  • Instructor and language: Uneven quality of explanation, and much of it is in English only.
  • Support and cost: No guidance, and dollar-priced subscriptions or expensive bootcamps.

What do you get at CSkilled Academy?

  • Depth and curriculum: 70 lectures and 90 hours in two versions, Python and C++, explaining the idea before using any ready-made tool.
  • Practice and projects: Graded problems with explained solutions, and hands-on projects that bring what you learned together into complete work.
  • Instructor and language: Taught in Arabic with English terminology, with six Diplomas taught by Dr. Mostafa Saad, who has taught programming for 20 years and is a Senior Computer Vision Engineer at NVIDIA with a PhD in Computer Vision.
  • Support and payment: A support team that answers your questions on WhatsApp, and interest-free installments for up to 6 months.
What our students say

Real experiences from students who completed the journey

Hundreds of verified reviews
Data Structures & Algorithms Diploma
70 lectures · 90 hours
Watch the free lecturesPlans & pricing
Pricing & payment methods

Choose the payment plan that suits you

No interest and no hidden fees. The large number is what you pay today.

This diploma is the second step in the Python, C++ and AI tracks.View the tracks
One-time payment

Full payment

Pay today15,000EGP
One payment, no installments after
Choose plan
Total: 15,000 EGP
Fewest payments 3 months

3-month installments

Down payment today6,500EGP
then 2 monthly payments × 4,250 EGP
Choose plan
Total: 15,000 EGP
Most popular 6 months

6-month installments

Down payment today5,000EGP
then 5 monthly payments × 2,000 EGP
Choose plan
Total: 15,000 EGP
One-time payment

Full payment

Pay today$300
One payment, no installments after
Choose plan
Total: $300

Installments are currently available in Egyptian pounds only. To ask about dollar installments: Contact us.

Down payment at checkout, then installments every 30 days. No interest and no late fees; access pauses if an installment is not received within 3 days of its due date.

InstaPayFawryCardsInterest-freeLifetime accessSecure payment via Paymob

Have a question about payment? Contact us on WhatsApp

Judge the teaching for yourself

Start with the free lectures today

Data Structures & Algorithms Diploma: 70 lectures and 90 hours. Start free, no payment details needed.

No payment detailsInterest-free installments for up to 6 monthsTaught in Arabic with the English terms
FAQ

Questions before you enroll

What are the prerequisites for this diploma?

Solid programming skills in Python or C++: functions, recursion and object-oriented programming. If you are not ready yet, start with the Python Programming diploma or the C++ diploma.

How many hours a week do I need?

6 to 8 hours a week is enough to progress steadily. Study is self-paced and can be balanced with school or work.

Are the lectures recorded?

Yes, they're fully recorded and you watch them whenever suits you.

How long does access to the content last?

Lifetime access (Lifetime Access): watch the content anytime with no expiry, including any updates or new additions to the content for free.

Do I get a certificate?

Yes, you receive a certificate of completion issued by CSkilled and signed by Dr. Mostafa Saad.

What payment methods are available?

InstaPay, Fawry and bank cards, with interest-free installments for up to 6 months.

Why explanations in Arabic with English terminology?

So you understand ideas in your own language, while working with references and the job market in its own terminology.

shieldOur principle: no unrealistic job promises, just solid engineering training.
Have a question?