Objective
Provide interns with strong foundational skills in C and C++ programming: problem solving, data structures, memory management, OOP (C++), and building small real-world programs. Emphasis on clean code, testing and documentation.
Features
- Core C fundamentals: pointers, arrays, strings, file I/O
- C++ features: classes, STL (vectors, maps), OOP
- Algorithmic problem solving and complexity awareness
- Debugging with gdb and unit testing basics
- Build tools: Makefile / CMake and packaging
Tools
Beginner Level Tasks
- Write a C program to print Fibonacci series and demonstrate iterative vs recursive approach.
- Create a C++ class that models a Bank Account (deposit, withdraw, display balance).
- Build a program to read a text file and count word frequencies (use map in C++ or hash table in C).
- Compile and run small programs using GCC/G++ and create a simple Makefile to build them.
Note: Out of the 4 main tasks below, you are required to complete any 3 tasks.
Tasks (4)
Goal
Implement core data structures from scratch: linked list, stack, queue, and binary search tree.
Requirements
- Implement at least two DS in C or C++ with insert/delete/search
- Write small driver programs to demonstrate functionality
- Include complexity analysis comments
Deliverables
- GitHub repo with source code and README
- Sample input/output and short explanation
Goal
Solve algorithmic problems demonstrating sorting, searching, and greedy/dynamic approaches.
Requirements
- Implement at least 3 problems (e.g., quicksort/mergesort, binary search, knapsack or interval scheduling)
- Include test cases and measure runtime for different input sizes
Deliverables
- Source files and test inputs
- Report with algorithm choice and complexity
Goal
Build a small system utility demonstrating file handling, process creation, or inter-process communication.
Requirements
- Examples: simple shell (command runner), log rotator, or producer-consumer using pipes
- Handle errors gracefully and document edge cases
Deliverables
- Source code with instructions to compile and run
- Screenshots or sample runs
Goal
Build a small C++ application using classes, inheritance, STL containers and file persistence.
Requirements
- Example: Library Management, Student Grade System, Inventory Manager
- Use classes, inheritance (if applicable), and STL (vector/map/set)
- Provide a Makefile or CMake and basic unit tests
Deliverables
- GitHub repo with code, build instructions and sample data
- Short README explaining design decisions
How to Submit Your Tasks
-
For each task:
- Create a separate document (DOC, DOCX or PDF) describing the task, compile/run commands, and include screenshots and sample input/output.
- Include a README with exact build commands (gcc/g++, make, or cmake) and environment notes.
-
Upload artifacts:
- Push code to GitHub and share the repository link.
- Upload large files to Google Drive (if any) and ensure view permissions.
-
Submit links:
- Go to the Task Submission page.
- Paste your GitHub and document links clearly mentioning task numbers.
Tip: Provide reproducible build steps and include sample test inputs so reviewers can run your code quickly.