Build Real C++ Projects

Learn by building complete applications from scratch. Each project guides you step-by-step from fundamentals to advanced implementations.

Start Your Journey

Create a free account to track your progress and save your code

Beginner Fundamentals

Beginner
~0.8h

My First C++ Program

Build your first complete C++ program step by step. Start with Hello World and progressively add variables, user input, and calculations to create a practical rectangle area calculator.

5 steps
What You'll Build:
A complete C++ program that interacts with users to calculate the area of a rectangle. You'll start with the classic Hello World program and progressively add new concepts until you have a fully functional calculator that demonstrates fundamental C++ programming skills.

Real-World Projects

Advanced
~4h

OpenGL 2D Blackhole Simulator v2

Build a 2D gravitational lensing simulator with OpenGL. Visualize light ray bending around a black hole using the Schwarzschild metric and numerical integration. (Updated version with geometric units and improved code organization)

16 steps Source files
What You'll Build:
An interactive 2D visualization showing light ray trajectories bending around a black hole. Watch as rays with different impact parameters either escape to infinity or spiral into the event horizon, demonstrating gravitational lensing in real-time.

DSA Data Structures & Algorithms

View Roadmap

Beginner

Static Array

Build a fixed-size array wrapper class with bounds checking and O(1) random access. Learn how arrays store elements in contiguous memory.

3 steps ~0.5h

Dynamic Array

Build a resizable array that automatically grows when you add elements. This is the foundation of std::vector and demonstrates amortized O(1) insertion through the geometric growth strategy.

3 steps ~0.8h

Singly Linked List

Build a dynamic data structure where each element (node) contains data and a pointer to the next node. Unlike arrays, linked lists can grow and shrink at runtime and provide O(1) insertion at the front, making them ideal for stacks, queues, and situations where frequent insertions are needed.

4 steps ~0.9h

Stack

Build a Stack data structure that demonstrates the LIFO (Last In First Out) principle. Stacks are fundamental in computer science, powering function calls, undo systems, and expression evaluation. You'll implement a template-based stack using a dynamic array internally.

3 steps ~0.8h

Queue

Build a FIFO (First In First Out) data structure using a circular array. Queues are fundamental for task scheduling, breadth-first search, and any scenario where processing order must match arrival order.

3 steps ~0.8h

Linear Search

Implement the linear search algorithm to find elements in an array by checking each element sequentially. This fundamental algorithm introduces you to algorithmic thinking and time complexity analysis with O(n) worst-case performance.

4 steps ~0.5h

Binary Search

Implement the binary search algorithm, a fundamental divide-and-conquer technique that finds elements in sorted arrays with O(log n) time complexity. Learn both iterative and recursive approaches, plus practical variants like lower_bound and upper_bound.

4 steps ~0.8h

Have a Project Idea?

We'd love to hear your suggestions! Share your ideas for new C++ projects you'd like to see, and help shape our curriculum.