Competitive Problem-Solving using C/CPP with DSA
Durations -15 days.
Program Structure
- C / C++ Programming Fundamentals & OOPs
- Algorithm Analysis & Complexity (Time & Space)
- Searching & Sorting Techniques
- Linear Data Structures (Arrays, Strings, Stack, Queue, Linked List)
- Non-Linear Data Structures (Trees, Heaps, Graphs)
- Recursion, Backtracking & Dynamic Programming
- Competitive Coding Techniques & STL
- Mini Project & Interview-Oriented Problem Solving
Assessment – MCQ’s , Module Test
Program Outcomes
- Ability to solve complex problems using optimal algorithms
- Strong understanding of Data Structures & Algorithmic thinking
- Improved code efficiency and optimization skills
- Confidence to face coding interviews and online assessments
- Readiness for competitive programming and campus placements
Tools / Platform:
- GCC / G++ Compiler
- VS Code / Code::Blocks
- Online Judges (HackerRank, CodeChef, LeetCode)
- Git & GitHub (basic)
Experiential Project Based Learning:
- Design and implement DSA-based mini projects using C/C++
- Real-time problem-solving with menu-driven applications
- Application of arrays, linked lists, stacks, queues, trees, and graphs
- Optimization of solutions based on time and space constraints
- Project demonstrations aligned with interview and placement scenarios
| C / C++ Programming Foundations | ||
|---|---|---|
| Program structure, compilation process | Data types, variables, operators | Input/Output (scanf/printf, cin/cout) |
| Control statements (if, switch) | Looping constructs (for, while, do-while) | Pattern-based problem solving |
| Functions & Memory Basics | ||
| Functions & recursion basics | Call by value vs call by reference | Pointers & references |
| Arrays (1D, 2D) | Str | Practice: array & string problems |
| C++ OOPs Essentials | ||
| Classes & objects | Constructors & destructors | Encapsulation & abstraction |
| Inheritance & polymorphism | STL overview | Mini coding challenge (OOP-based) |
| Algorithm Analysis | ||
| What is an algorithm? | Time & space complexity | Big-O, Big-Ω, Big-Θ |
| Best, worst, average cases | Constraint-based thinking | Optimization techniques |
| Searching & Sorting | ||
| Linear & Binary Search |
Sorting algorithms: - Bubble, Selection, Insertion
- Merge Sort, Quick Sort
|
STL sorting (sort()) |
| Competitive problems on sorting & searching | ||
| Arrays & Strings (Advanced) | ||
|---|---|---|
| Prefix sum technique | Sliding window technique | Two-pointer approach |
| String manipulation problems | Interview-level problem solving | |
| Stack & Queue | ||
| Stack implementation (array & STL) |
Applications: - Expression evaluation - Balanced parentheses |
Queue, circular queue |
| Deque & Priority Queue | Practice problems | |
| Linked List | ||
| Singly, doubly, circular linked list | Insertion, deletion, traversal | Slow & fast pointer technique |
| Linked list interview problems | ||
| Trees | ||
| Binary Tree & Binary Search Tree | Tree traversals (In order, Pre order, Post order) | Height, diameter problems |
| Recursive & iterative solutions | ||
| Heaps | ||
| Min heap & max heap | Priority queue using STL | Heap sort |
| Top-K problems | Competitive coding problems | |
| Graphs | ||
| Graph representation (adjacency list/matrix) | BFS & DFS | Connected components |
| Shortest path basics | Graph problem practice | |
Recursion & Backtracking
Recursion patterns
Backtracking approach
Problems:
- Subsets
- Permutations
- N-Queens (conceptual)
Greedy & Dynamic Programming
Greedy algorithms (activity selection, knapsack)
Dynamic Programming basics
1D & 2D DP problems
Optimization strategies
Competitive Programming Practice
Problem-solving strategies
Handling constraints & edge cases
STL mastery for contests
Live contest-style problem solving
Code optimization techniques
Mini Project & Interview Preparation
| Mini Project using DSA (menu-driven / real-world) | Mock coding interview | Common DSA interview patterns |
| Resume-oriented problem discussion | Final assessment (MCQs + coding) |
