Programming & Logic Building Basics
Concepts
- What is DSA?
- Time & Space Complexity basics
- Algorithm vs Program
- Flowcharts & Pseudocode
- Problem solving techniques
Practice
- Number problems
- Pattern printing
- Basic math logic
- Dry run practice
Time & Space Complexity
Concepts
- Big O notation
- Big Omega
- Big Theta
- Best, Average, Worst case
- Complexity analysis of loops
- Nested loops analysis
- Recursion complexity
Examples
Arrays
Concepts
- 1D, 2D arrays
- Traversal
- Insert/Delete
- Searching
- Rotations
- Prefix sum
- Subarrays
Algorithms
- Linear Search
- Binary Search
- Kadane's Algorithm
- Two pointer technique
Problems
- Reverse array
- Find duplicates
- Max/Min element
- Leaders in array
- Stock buy/sell
Strings
- String operations
- Character arrays
- Palindrome
- Anagrams
- Frequency count
- StringBuilder usage
Problems
- Reverse string
- Remove duplicates
- Longest substring
- Pattern matching
Recursion
- What is recursion
- Base case & recursive case
- Stack memory concept
- Backtracking intro
Programs
- Factorial
- Fibonacci
- Sum of digits
- Power calculation
- Tower of Hanoi
Sorting Algorithms
Basic
- Bubble Sort
- Selection Sort
- Insertion Sort
Advanced
- Merge Sort
- Quick Sort
- Heap Sort
- Counting Sort
Concepts
- Stable vs Unstable
- In-place sorting
- Complexity comparison
Searching Algorithms
- Linear Search
- Binary Search
- Binary Search on Answer
- Lower bound / Upper bound
Stack
Concepts
- LIFO
- Stack implementation (Array + LinkedList)
Applications
- Parenthesis checking
- Infix → Postfix
- Postfix evaluation
- Next greater element
- Stock span problem
Queue
Concepts
- FIFO
- Queue implementation
Types
- Simple queue
- Circular queue
- Deque
- Priority queue
Applications
- CPU scheduling
- BFS traversal
Linked List
Types
- Singly Linked List
- Doubly Linked List
- Circular Linked List
Operations
- Insert/Delete
- Reverse
- Middle node
- Detect cycle
Problems
- Merge two lists
- Remove duplicates
- Intersection point
Hashing
Concepts
- Hash function
- Hash table
- Collisions
- Chaining
Structures
- HashSet
- HashMap
Problems
- Two sum
- Frequency count
- First non-repeating element
- Subarray sum
Trees
Basics
- Tree terminology
- Binary tree
- Types of trees
Traversals
- Inorder
- Preorder
- Postorder
- Level order
Problems
- Height of tree
- Count nodes
- Mirror tree
Binary Search Tree (BST)
- Insert/Delete/Search
- Min/Max
- LCA
- Validate BST
Heap / Priority Queue
- Min heap
- Max heap
- Heapify
- Heap sort
Problems
- K largest elements
- Top K frequent
- Median in stream
Graphs
Concepts
- Graph representation (Adj list, matrix)
- Directed vs Undirected
Traversals
- BFS
- DFS
Algorithms
- Cycle detection
- Topological sort
- Dijkstra
- Prim's
- Kruskal
- Shortest path
Greedy Algorithms
- Activity selection
- Fractional knapsack
- Job scheduling
- Huffman coding
Dynamic Programming
Concepts
- Memoization
- Tabulation
- Overlapping subproblems
Problems
- Fibonacci
- Climbing stairs
- 0/1 Knapsack
- LCS
- LIS
- Coin change
- Subset sum
Backtracking
- N-Queens
- Sudoku solver
- Rat in maze
- Permutations & combinations
Interview Preparation
- Coding patterns
- Problem solving strategies
- Mock tests
- Time management
LeetCode / HackerRank practice
🔹 Mini Projects (DSA Based)
Students should build:
Library system using linked list
Student ranking using heap
Search engine using hashing
Maze solver using graphs
Banking system using queues