Week | Focus Area | Daily Breakdown | Checkpoints |
---|---|---|---|
Week 1 | Foundation: Basics of Programming | Day 1-2: Learn variables, data types, loops (for, while). Day 3-4: Conditionals, functions. Day 5-6: Arrays & Strings basics. Day 7: Solve 10 simple pattern-building questions (stars, triangles). |
✅ Understand basic syntax and concepts. ✅ Solve 10 pattern-building problems. |
Week 2 | Introduction to Problem Solving | Day 1-2: Learn dry-run and pseudocode. Day 3-5: Solve 10 simple DSA problems (easy level, e.g., reverse array, Fibonacci). Day 6-7: Build Mini Project 1: Calculator App. |
✅ Solve 10 DSA problems. ✅ Complete Mini Project 1: Calculator App. |
Week 3 | Level Up: Arrays & Logic Thinking | Day 1-2: Advanced array techniques (sliding window, prefix sum). Day 3-6: Solve 15 array-based problems (medium level). Day 7: Build Mini Project 2: Tic-Tac-Toe Game. |
✅ Solve 25 total DSA problems (15 new). ✅ Complete Mini Project 2: Tic-Tac-Toe Game. |
Week 4 | Strings & Problem-Solving Practice | Day 1-2: String manipulation (reversal, palindromes, substrings). Day 3-5: Solve 15 string-based problems (easy-medium). Day 6-7: Build Mini Project 3: Text Manipulation Tool (e.g., Uppercase, Reverse). |
✅ Solve 40 total DSA problems (15 new). ✅ Complete Mini Project 3: Text Tool. |
Week 5 | Recursion & Logic Expansion | Day 1-2: Learn recursion basics (factorial, Fibonacci). Day 3-5: Solve 10 recursion-based problems (medium level). Day 6-7: Build Mini Project 4: Recursive Maze Solver. |
✅ Solve 50 total DSA problems (10 new). ✅ Complete Mini Project 4: Recursive Maze Solver. |
Week 6 | Data Structures: Stacks & Queues | Day 1-2: Learn stacks and queues basics. Day 3-6: Solve 15 problems (balanced parentheses, queue reversal). Day 7: Work on Mini Project 5: Browser History Tracker (using stack). |
✅ Solve 65 total DSA problems (15 new). ✅ Complete Mini Project 5: Browser History Tracker. |
Week 7 | Dynamic Programming Introduction | Day 1-3: Learn DP basics (knapsack, Fibonacci with memoization). Day 4-6: Solve 10 DP problems (easy-medium). Day 7: Revise all past concepts/projects. |
✅ Solve 75 total DSA problems (10 new). ✅ Master basic DP problems. |
Week 8 | Advanced Problem Solving (Graph) | Day 1-2: Learn graph representation (adjacency list/matrix). Day 3-5: Solve 10 graph-based problems (BFS/DFS). Day 6-7: Build a Mini Project: Path Finder Visualizer. |
✅ Solve 85 total DSA problems (10 new). ✅ Complete Graph-Based Mini Project. |
Week 9 | Advanced DSA (Sorting/Greedy) | Day 1-2: Learn sorting algorithms (merge sort, quicksort). Day 3-5: Solve 15 problems on sorting/greedy (e.g., activity selection, job scheduling). |
✅ Solve 100 DSA problems (15 new). |
Week 10-11 | Integration: Complex Projects | Day 1-7: Brainstorm and build Project 1: Expense Tracker with Charts. Next 7 days: Build Project 2: Multiplayer Rock-Paper-Scissors Game (WebSockets, if possible). |
✅ Integrate past knowledge into real-world projects. ✅ Master real-world application-building. |
Week 12 | Final Touches and Mock Practice | Day 1-3: Revise all concepts learned. Day 4-6: Solve 10 problems from past mistakes or blindspots. Day 7: Build a final project of your choice integrating at least one complex DSA concept. |
✅ Complete final project. ✅ Feel confident in solving beginner-intermediate DSA problems. |
- Break Down the Problem: Read the question twice. Identify inputs, outputs, and constraints.
- Start with Examples: Create test cases manually and simulate the solution step-by-step.
- Write Pseudocode: Draft a high-level plan before coding.
- Ask “Why?” at Every Step: Understand each operation; don’t memorize solutions.
- Visualize: Use diagrams or dry-run tables to debug.
- Optimize Gradually: Start with brute force; iterate to optimize for efficiency.
Category | Question Name | Platform | Link |
---|---|---|---|
Basics & Warm-Up | Print a pattern of stars (triangle, pyramid) | GeeksforGeeks | Link |
Reverse a number | GeeksforGeeks | Link | |
Check if a number is palindrome | GeeksforGeeks | Link | |
Count digits in a number | GeeksforGeeks | Link | |
Find factorial of a number | HackerRank | Link | |
Arrays | Reverse an array | LeetCode | Link |
Find the maximum and minimum of an array | GeeksforGeeks | Link | |
Rotate an array by K steps | LeetCode | Link | |
Move all zeroes to the end | LeetCode | Link | |
Kadane's Algorithm (Maximum Subarray Sum) | LeetCode | Link | |
Strings | Reverse a string | LeetCode | Link |
Check if two strings are anagrams | LeetCode | Link | |
Longest Common Prefix | LeetCode | Link | |
Check if a string is a palindrome | LeetCode | Link | |
Count and say | LeetCode | Link | |
Recursion | Fibonacci series using recursion | GeeksforGeeks | Link |
Tower of Hanoi | GeeksforGeeks | Link | |
Factorial using recursion | LeetCode | Link | |
Reverse a linked list using recursion | LeetCode | Link | |
Permutations of a string | GeeksforGeeks | Link | |
Sorting | Bubble sort | GeeksforGeeks | Link |
Selection sort | GeeksforGeeks | Link | |
Merge sort | GeeksforGeeks | Link | |
Quick sort | GeeksforGeeks | Link | |
Insertion sort | GeeksforGeeks | Link | |
Searching | Binary search | LeetCode | Link |
Linear search | GeeksforGeeks | Link | |
Search in a rotated sorted array | LeetCode | Link | |
First and last position in a sorted array | LeetCode | Link | |
Square root of a number (using binary search) | LeetCode | Link | |
Linked List | Reverse a linked list | LeetCode | Link |
Detect a cycle in a linked list | LeetCode | Link | |
Merge two sorted linked lists | LeetCode | Link | |
Remove Nth node from the end | LeetCode | Link | |
Find the middle of a linked list | LeetCode | Link | |
Stacks & Queues | Implement a stack using arrays | LeetCode | Link |
Evaluate postfix expression | GeeksforGeeks | Link | |
Balanced parentheses | LeetCode | Link | |
Next greater element | LeetCode | Link | |
Implement a queue using stacks | LeetCode | Link | |
Dynamic Programming | 0/1 Knapsack problem | GeeksforGeeks | Link |
Fibonacci using dynamic programming | LeetCode | Link | |
Longest common subsequence | LeetCode | Link | |
Longest increasing subsequence | LeetCode | Link | |
Minimum steps to reach the end | LeetCode | Link | |
Graphs | BFS traversal | GeeksforGeeks | Link |
DFS traversal | GeeksforGeeks | Link | |
Detect cycle in an undirected graph | GeeksforGeeks | Link | |
Shortest path in a graph (Dijkstra’s) | GeeksforGeeks | Link | |
Topological sort | GeeksforGeeks | Link |