Flowcharts
Introduction to flowcharts, Decision making using flowcharts, Loops, Example problems
Variables and Data types
First program, Variables and data types, Taking input, How data is stored in memory, Arithmetic Operators
Conditional statements
Introduction to If else, Relational and logical operators, Nested conditionals
While loops
While loops, Flow of execution of statements in while loop, Example problems using while loop
Patterns
Introduction to patterns, Basic Patterns, Square Patterns, Triangular Patterns, Character Patterns, Reverse Triangle, Inverted patterns, Isosceles triangles
For loops
For loops, Break and Continue, increment - decrement operators
Functions
Introduction to functions, Working of function calling, Variables and its scope, Pass by value
Introduction to Arrays
Introduction to arrays, How arrays are stored in memory, Passing arrays to functions
Searching and Sorting
Understanding Binary Search, Selection sort, Bubble sort, Insertion sort, Merging two sorted arrays
Strings
Introduction to strings, storage of strings and their inbuilt functions
2D Arrays
2D arrays, Storage of 2D arrays, Example problems using 2D Arrays
Recursion
Introduction to recursion, Principle of mathematical induction, Fibonacci numbers, Recursion using arrays, Recursion using strings, Recursion using 2D arrays
Time and space complexity
Order complexity analysis, Theoretical complexity analysis, Time complexity analysis of searching and recursive algorithms, Theoretical space complexity, Space complexity analysis of merge sort
Basics of OOPS
Introduction to OOPS, Creating objects, Getters and setters, Constructors and related concepts, Inbuilt constructor and destructor, Example classes
Advance concepts of OOPS
Static members, Function overloading and related concepts, Abstraction, Encapsulation, Inheritance, Polymorphism, Virtual functions, Abstract classes, Exception handling
Linked Lists
Introduction to linked list, Inserting node in linked list, Deleting node from linked list, Midpoint of linked list, Merge two sorted linked lists, merge sort of a linked list, Reversing a linked list
Stacks and Queues
Introduction to stacks, Stack using arrays, Dynamic Stack class,Stack using linked list, Inbuilt stack, Queue using arrays, Dynamic queue class, Queue using linked list, Inbuilt queue
Generic Trees
Introduction to Trees, Making a tree node class, Taking a tree as input and printing, Tree traversals, Destructor for tree node class
Binary Trees
Introduction to Binary Trees, Taking a binary tree as input and printing, Binary Tree traversals, Diameter of binary tree
Binary Search Trees
Introduction to Binary Search Trees, Searching a node in BST, BST class, Inserting and Deleting nodes in BST, Types of balanced BSTs
Priority Queues
Introduction to Priority Queues, Ways to implement priority queues, Introduction to heaps, Introduction to Complete Binary Trees and its implementation, Insert and Delete operations in heaps, Implementing priority queues, Heap sort, Inbuilt Priority Queue
Hashmaps
Introduction to Hashmaps, Inbuilt Hashmap, Hash functions, Collision handling, Insert and Delete operation implementation in hashmap, Load factor, Rehashing
Tries
Introduction to Tries, Making a Trie Node class, Insert, Search and Remove operation implementation in Tries, Types of Tries, Huffman Coding
Graphs
Introduction to Graphs, Graph Terminology, Graph implementation, Graph Traversals (DFS and BFS), Weighted and Directed Graphs, Minimum Spanning Trees, Cycle Detection in Graphs, Kruskal's algorithm, Prim's Algorithm, Dijkstra's algorithm
Introduction to Dynamic Programming
Introduction to Memoization, Introduction to Dynamic Programming, Fibonacci numbers using recursion, memoization and dynamic programming
Applications of Dynamic Programming
Longest Common Subsequence (LCS) using recursion, memoization and dynamic programming, Edit distance using recursion, memoization and dynamic programming, Knapsack problem using recursion, memoization and dynamic programming
Introduction to Competitive Programming
Why Competitive Programming?, How To Approach A Problem In Contest, Various Types Of Errors
Basics Of Recursion
Introduction to Recursion, Recursion and PMI, Fibonacci Number, Recursion and Arrays
Time and Space Complexity Analysis
Order Complexity Analysis, Theoretical Analysis, Linear Search time complexity, Insertion Sort time complexity, Selection Sort time complexity, Theoretical Analysis - Recursive Algorithms, Merge Sort Time complexity, Fibonacci Time Complexity Analysis, Space Complexity Analysis, Merge Sort Space Complexity Analysis, Fibonacci Space Complexity Analysis, Kadane's Algorithm
Language Tools
STL - Data Structures, STL - Functions, Hussain Set, Voters List, Permutation & Palindrome
Searching & Sorting Applications
Aggressive Cows, Inversion Count
Advanced Recursion
Recursion and Strings, Merge Sort Algorithm, Quick Sort Algorithm, Strings, Return Subsequences of a String, Return Keypad Approach
Backtracking
Backtracking ( N-Queen), N-Queen Code, Rat In A Maze code
Bit Manipulation
Flip ith bit, Check Odd-Even, Introduction & Shift Operators, Clear All Bits From LSB, Remaining Bitwise Operators, Check Power of 2, Check nth bit
Modulo Arithmetic
Modulo Operations, Modulo Properties, Modulo Operations - Continue, Number Of Balanced Binary Trees
Dynamic Programming
Basics Of Dynamic programming: Fibonacci Numbers, AlphaCode, Longest Increasing Subsequence, Coin Change And StairCase, Minimum Cost, Magic Grid, Maximum Sum Rectangle, Longest Common Subsequence, Knapsnack - Iterative, Subset Sum
Greedy Problems
Introduction To Greedy Techniques, Minimum Absolute Difference In Array, Nikunj And Donuts, Fractional Knapsack, Weighted Job Scheduling
DP & Bitmasking
DP With Bitmasking, What is Bit Masking?, Minimum Cost for Jobs, Mehta and Bank Robbery
Segment Tree
Introduction to Segment Tree, Update On A Segment Tree, Size Of Segment Tree, Sum Of Squares Video, Maximum Sum in Subarray, Lazy Propagation, How To Build A Segment Tree, Query On A Segment Tree, Segment Tree Max Pair Sum
Fenwick Tree
Introduction to Fenwick Tree, Coordinate Compression, OrderSet Problem, Distinct Query
Graph Implementation
Return all connected components, Get Path - BFS, Get Path - DFS, Has path, Solution: BFS Traversal, DFS - Adjacency Matrix, Graphs Terminology, Graphs Introduction, Graphs Implementation, BFS Traversal, BFS & DFS for disconnected graph, Weighted & Directed Graphs
Graph Algorithms
Dijkstra’s Algorithm, Prim's Algorithm, Kruskal's Algorithm, Minimum Spanning Trees, Detect Cycle, Union Find Algorithm
Advanced Graphs
Permutation Swaps, Connected Components, Fill Matrix Question, Connected Horses, Strongly Connected Components, Bipartite Graph
String Algorithms
Longest Prefix Suffix, Z-Algorithm Pattern Matching, Longest Palindromic Substring Basics, KMP Algorithm, Pattern Matching Basics, Longest Prefix Suffix
Tries
Search Engine, SUBXOR, Maximum XOR Subarra, XOR Maximum Pair, Tries & XOR
Number Theory
GCD(Euclid Algorithm), Diophantine Equations, Multiplicative Modulo Inverse, Find Prime Numbers From 1 To N, Sieve Of Eratosthenes, Divisors Of Factorial, Advanced GCD, Euler's Totient Function, Segmented Sieve,Wilson's Theorem, Modular Exponentiation, Nth Fibonacci Number - Log(n), Fermat’s Little Theorem, Matrix Exponentiation, Optimized Power Function, Recurrence Relations
Game Theory
Othello, Othello Evaluation Function, MinMax Algorithm, Sprague Grundy Theorem, Grundy Numbers, Game Of Nim, Intro To Game Theory, Proof Of Nim Formula, Evaluation Function In MinMax Algorithm
Computational Geometry
Convex Hull, Area Of A Polygon, Distance Of A Point, Intro To Computational Geometry, Intersection Of Two Lines
Mock interview/Industry mentor guidance sessions - 10
Workshops for building your resume and Linkedin/Github profiles
Curated interview problems - 100
DSA based product companies Mock Test Series
2 months Free Course Extension