Programming

Data Structures and Algorithms (DSA) Mastery

This 4-month comprehensive course dives deep into Data Structures and Algorithms (DSA), focusing on problem-solving techniques, algorithm optimization, and tackling complex coding challenges. The course offers extensive hands-on projects, preparing students for real-world coding interviews and competitive programming in tech giants.

Data Structures and Algorithms (DSA) Mastery
Duration4 months
Lessons250
Levelintermediate
ModeLive Online

What you will learn

  • Array Fundamentals
  • Linked Lists
  • Stack and Queue Operations
  • Trees (Binary, BST, AVL, Red-Black Tree)
  • Graph Algorithms (BFS, DFS, Dijkstra, Bellman-Ford)
  • Sorting & Searching Algorithms
  • Dynamic Programming
  • Greedy Algorithms
  • Backtracking Techniques
  • Advanced Algorithm Design and Analysis
  • Coding Challenges and Problem-Solving Strategies

Corporate training outcomes

  • Completion certificate
  • Practical assignments and project work
  • Mentor support and progress tracking
  • Custom batch options for teams
  • Yes

Requirements

  • Laptop with internet access
  • Basic programming knowledge (C++, Java, Python)
  • Problem-solving mindset
  • Curious about mastering algorithms and data structures
  • Willing to dedicate time and effort to practice

Curriculum

Introduction to DSA and Loop Time Complexity
  • Why study DSA?
  • Syllabus discussion.
  • Understanding Leetcode and Codeforces coding platforms
  • Introduction to Algorithms.
  • Introduction to Time complexity analysis
  • Time complexity analysis for loops
  • Time complexity analysis summary
  • Understanding Time complexity analysis with lots of examples
  • What are Asymptotic Notations?
  • Type of Asymptotic notations.
  • Understanding asymptotic notations with lots of examples.
  • Space Complexity Analysis
  • Examples of Space complexity analysis
  • Time complexity analysis for Recursive codes
  • Examples of Time complexity analysis for Recursive codes
  • Introduction to Array
  • Types of Arrays
  • Vector in C++
  • ArrayList in Java
  • List in Python
  • Two pointer approach - with examples
  • Sliding window technique - with examples
  • Kadane's algorithm - with examples
  • Prefix sum approach - with examples
  • Solving MAANG companies problems on Arrays
  • Introduction to Matrices.
  • 2D array: Row major order
  • 2D array: Column major order
  • 2D vectors in C++
  • 2D ArrayList in Java
  • 2D List in Python
  • Solving MAANG companies problems on Matrices
  • Count number of Digits
  • Finding Palindrome of a number
  • GCD or HCF of a number
  • Euclidean Algorithm for finding GCD
  • GCD of Array
  • Finding Least Common Multiplier (LCM) of given numbers
  • Check a number Prime or not - Naive to Optimal
  • Finding Prime factors
  • Solving MAANG companies problems on Mathematical concepts
  • Introduction to Bitwise operators.
  • Why to use Bitwise operators?
  • Type of Bitwise operators.
  • Applying Bitwise operators in problems
  • Solving MAANG companies problems on Bitwise operators
  • Introduction to Recursion
  • Building thought process to solve problem using recursion
  • Recursion base building using lots of basic codes
  • Properties of Recursion
  • Understanding Tail recursion
  • Understanding Indirect recursion
  • Understanding Nested recursion
  • Solving MAANG companies problems on Recursion
  • Introduction to Backtracking
  • Understanding Backtracking using basic problems
  • Solving M - Coloring problem using Backtracking
  • Solving N Queen problem using Backtracking
  • Solving RAT in a Maze problem using Backtracking
  • Introduction to Linked List
  • Type of Linked list (Singly linked list, Doubly linked list, Circular linked list)
  • Traverse operation in Linked list.
  • Insert operation in Linked list.
  • Delete operation in Linked list.
  • Solving MAANG companies problems on Linked list
  • Introduction to searching techniques.
  • Linear searching technique.
  • Binary search technique for Sorted array
  • Binary search technique for unsorted array
  • Binary search on 2D array
  • Solving MAANG companies problems on Searching Techniques
  • Introduction to Sorting techniques.
  • Type of Sorting techniques.
  • Time complexity of all Sorting algorithms.
  • Inbuilt Sort() function
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Stable and Inplace sorting
  • Merge sort
  • Quick sort
  • Heap sort
  • Counting sort
  • Bucket sort
  • Solving MAANG companies problems on Sorting Techniques
  • String Introduction
  • Strings in C++/JAVA/Python
  • Naive and Improved Naive Pattern Searching
  • Rabin Karp Algorithm
  • KMP Algorithm
  • Solving MAANG companies problems on Strings
  • Introduction to Hashing
  • Collision resolution techniques
  • Linear probing
  • Quadratic probing
  • Double hashing
  • Linear Probing Vs Quadratic probing Vs Double hashing
  • Unordered sets/HashSet in C++/Java
  • Unordered map/HashMap in C++/Java
  • Solving MAANG companies problems on Hashing
  • Introduction to Stack
  • Operations on Stack.
  • Implement stack using array
  • Implement stack using LinkedList
  • Inbuild stack in C++/Java/Python
  • Infix to Postfix conversion using stack
  • Postfix evaluation using stack
  • Monotonic Stack
  • Solving MAANG companies problems on Stack
  • Introduction to Queue.
  • Types of Queue.
  • Implement Queue using simple array
  • Implement Queue using circular array
  • Implement Queue using LinkedList
  • Inbuild Queue in C++/Java/Python library.
  • Implement Queue using Stack
  • Implement Stack using Queue
  • Solving MAANG companies problems on Queue
  • Introduction to Tree
  • Tree traversals - preorder
  • Tree traversals - Inorder
  • Tree traversals - postorder
  • Construct Unique Binary tree - inorder & preorder
  • Construct Unique Binary tree - inorder & postorder
  • Count number of nodes in a binary tree
  • Count number of leaves nodes in a binary tree
  • Count Non-Leaf Nodes in Tree
  • Height of Binary Tree
  • Check for Balanced Tree
  • Introduction to Binary Search Tree
  • Insert a node in a BST
  • Deletion in BST
  • Inorder Successor in BST
  • Introduction to AVL Tree
  • Introduction to Red-Black Tree
  • Set/TreeSet in C++/Java
  • Map/TreeMap in C++/Java
  • Solving MAANG companies problems on Queue
  • Introduction to Graph
  • Tree vs Graph
  • Representation of Graphs in computer
  • Adjacency matrix and Adjacency list
  • BFT (Breadth First traversal)
  • DFS (Depth First Search)
  • Applications of BFS/DFS
  • Detect cycle in an undirected graph
  • Find the number of islands
  • Bipartite Graph
  • Topological sort
  • Solving MAANG companies problems on Graph
  • Introduction to Greedy Techniques.
  • Fractional Knapsack problem
  • Activity Selection Problem
  • Huffman coding
  • Solving MAANG companies problems with Greedy technique
  • Introduction to Minimum Cost Spanning Tree
  • Kruskal algorithm
  • Prims algorithm
  • Introduction to Single Source Shortest Path
  • Dijkstra algorithm
  • Bellmanford algorithm
  • Solving MAANG companies problems with Greedy technique
  • Introduction to Dynamic programming
  • Greedy vs Dynamic programming
  • Divide & Conquer vs Dynamic programming
  • Type of Dynamic programming.
  • Fibonacci Series using Dynamic Programming
  • How to detect the hint When to apply DP
  • Tabulation vs Memoization
  • 1D Array Dynamic Programming
  • 0/1 Knapsack problem
  • Longest Common Subsequence (LCS)
  • Matrix Chain Multiplication
  • All Pair Shortest Path (Floyd Warshall)
  • Solving MAANG companies problems with Dynamic Programming