LogoSalman
Portfolio
Blog
Courses
AI Chat
About
ServicesCertificates
Contact
Salman Logo

Full-Stack Product Engineer who owns the full journey — from the first conversation with a client to UX design, system architecture, and a finished product.

Quick Links

HomeAbout MePortfolioContact me

More to discover

CoursesServicesBlogCertificatesAI Assistant

© 2026 Salman Abualhin. All rights reserved.

HomeCoursesData Structures & Algorithms — Complete Course for Beginners
Data Structures & Algorithms — Complete Course for Beginners
Watch on YouTube
Data Structures
Algorithms
Time & Space Complexity
Competitive Programming
Beginner Friendly
InstructorSalman Abualhin
LevelBeginner
Episodes10
PriceFree
FormatVideo series (YouTube)

About this course

A free 10-lectures course teaching Data Structures, Algorithms, and Time & Space Complexity from the ground up, designed for students with little or no programming background. Covers Arrays, Strings, Linked Lists, Stacks, Queues, Hash Tables, and Sorting & Searching algorithms, with hands-on practice problems throughout.

Course Syllabus

1

#01 – Introduction to DSA, Time & Space Complexity, and Competitive Programming

This foundational module introduces Competitive Programming and the IEEE Xtreme competition. It covers the essentials of Data Structures and Algorithms (DSA), focusing on evaluating Time and Space Complexity using Big O notation. It also helps develop a structured, highly efficient problem-solving mindset to write fast, bug-free code under pressure.

2

#02.A – Arrays – Concepts & Operations

Take a deep dive into Arrays and Python Lists. You will learn how to dynamically create, access, and modify arrays. The course also covers essential operations like appending, inserting, sorting, and slicing, alongside understanding the implementation and practical use cases of multidimensional (2D) arrays and matrices.

3

#02.B – Strings – Concepts & Operations

Explore Strings as fundamental, immutable data types. This module explains essential string manipulation methods such as splitting, joining, stripping, and replacing text. You will also learn about text formatting and how computers process text under the hood using ASCII and Unicode character encoding.

4

#02.C – Arrays & Strings – Practice Problems

Apply your knowledge of arrays and strings through practical problem-solving sessions. Walk through real-world algorithmic challenges such as summing digits, array rotation, finding missing numbers, and reversing data. You will learn to compare the Time and Space Complexity of iterative, recursive, and optimal approaches to find the most efficient solutions.

5

#03 – Linked Lists + Python Tuples, Sets & Dictionaries

Master built-in Python collections like Tuples, Sets, and Dictionaries, and then transition into the mechanics of Linked Lists. This course covers building singly, doubly, and circular linked lists from scratch. You will also perform core operations like insertions and deletions, and utilize the advanced two-pointer technique for cycle detection.

6

#04 – Stack Data Structure

Learn the Stack data structure based on the strict LIFO (Last In, First Out) principle. This module demonstrates how to implement stacks efficiently using arrays and linked lists. You will apply these concepts to solve classic algorithmic problems like validating parentheses, building a Min Stack, and evaluating Reverse Polish Notation.

7

#05 – Queue Data Structure

Discover the Queue data structure and its FIFO (First In, First Out) architecture. Explore different queue variations including Simple, Circular, Deques (Double-Ended Queues), and Priority Queues. The module also covers queue implementations and introduces advanced algorithmic concepts like the Sliding Window technique.

8

#06 – Hash Table Data Structure

Master Hash Tables and Hash Maps for high-efficiency data storage and constant-time retrieval. This module comprehensively explains hashing functions and how to handle collision resolution strategies like Chaining and Open Addressing. You will also see practical walkthroughs for popular LeetCode challenges like Two Sum and Happy Number.

9

#07 – Sorting Algorithms

Dive into the core mechanics of Sorting Algorithms and their impact on system performance. Analyze and visualize the Time and Space Complexity of foundational algorithms like Bubble, Insertion, and Selection Sorts. The course then moves up to highly efficient Divide and Conquer algorithms like Merge Sort and Quick Sort.

10

#08 – Searching Algorithms

Take a deep dive into Searching Algorithms to master the art of locating data in the most efficient way possible. This session covers everything from the brute-force Linear Search to highly optimized techniques like the gold standard Binary Search, alongside advanced divide-and-conquer variations such as Ternary, Exponential, and Jump Search. You will thoroughly analyze their Time and Space Complexities and learn to leverage pro-level built-in search functions across C++, Java, and Python to write fast, bug-free code for coding interviews and competitions.

Ready to start learning?

Access the full playlist for free on YouTube.

Go to Playlist