Competitive Problem-Solving using C with DSA
Durations -20 days.
Program Structure
- Problem-solving using C. Variables, control structures, functions, Arrays, Strings pointers, memory management
- Data Structures using C. Stacks, Queues, Linked Lists, Trees
- Analysis and Design of Algorithms.
- Searching and Sorting (Linear, Binary, Bubble, Insertion, Merge, Quick)
- Recursion and Backtracking
- Divide and Conquer
- Greedy Algorithms
- DynamicProgramming
- System Design Concepts. Introduction to Low-Level and High-Level Design SOLID Principles and real-world design problems
- Problem Solving Practice Hands-on coding with visible and hidden test cases Debugging edge cases and optimizing solutions
Projects:
A Threat Hunting and Incident Response System
- Building a Secure Data Exchange Platform
- Offensive Security Assessment of Web and Cloud Applications
- Designing a Full-Stack Cybersecurity Framework
Program Outcomes
After completing the program, learners will be able to:
- Mastery of C syntax and memory-efficient programming
- Ability to implement and analyze standard data structures and algorithms
- Proficiency in solving coding problems under constraints
- Exposure to system design thinking and software architecture basics
- Readiness for campus placements and technical interviews
Tools / Platform:
- Code Blocks / VS Code / Linux
Experiential Project Based Learning:
- Project Based on Data Structure
Problem Solving using C
Introduction to Problem Solving
Operators and Expressions
Decision Control Structures
Looping Constructs
Modular Programming using Functions
Scope and Lifetime
Coupling: Loose and Tight
Arrays
2D Arrays – Matrices
Macros
Strings
String Manipulation Functions
Pointers
Pointer Arithmetic and Arrays
Recursion
Debugging Skills
Code Optimization
Matrices
Competitive Problem-Solving using C: Sample Program List
Viral Advertising
Printing Patterns
Kaprekar Number
Birthday Cake Candles
Migratory Birds
Array Rotation
Pangram String
Anagram String
Palindrome Index
Encryption: Caesar Cipher
Game of Thrones
Utopian Tree
Data Structures using C
Data Structures
Structures in C
Union, Typedef and Enum
Implementation of Stacks using Arrays
Implementation of Queue using Arrays
Application of Stack
| Singly Linked List | Doubly Linked List | Circular Linked List |
| Trees | Binary Search Tree | Tree Traversal |
| Competitive Problem-Solving using Data Structure: Sample Program List | ||
|---|---|---|
| Parenthesis Matching using Stack | Super Reduced String using Stack | Max Element in Stack with O(1) |
| Insert node at Front / Rear | Delete node at Front/Rear | Reverse a Linked List |
| Compare two Linked List | Merge two Sorted Linked List | Delete duplicate value nodes |
| Cycle Detection | Tree Traversals: InOrder, PreOrder, PostOrder, LevelOrder | Height of Tree |
| Search in BST | Expression Tree | Suffix Expression Evaluation |
| Design and Analysis of Algorithm | ||
| Introduction to Algorithms | Time and Space Complexity | Asymptotic notations: Big-O |
| Brute Force | Divide and conquer | Greedy Algorithm |
| Recursion | Dynamic Programming | Backtracking |
| Introduction to Graph | Graph Representation | Graph Traversal |
| Breadth First Search (BFS) | Depth First Search (DFS) | Minimum Spanning Tree |
| Prims Algorithm | Kruskals Algorithm | Single Source Shortest Path |
| Dijkstra’s Algorithm | Floyd Algorithm | Warshall Algorithm |
| N-Queens Problem | 0/1 Knapsack | Topological Sequencing |
| System Design and Project | ||
| Introduction to System Design in C | Difference between algorithmic problem-solving and system level thinking | System Design Process |
| Modular Programming | Project Structuring | Designing reusable modules |
| Designing robust exception handling frameworks | Designing Libraries | Creating Static Libraries |
| Creating Dynamic Libraries | Makefile | Targets and Rules |
