Track
A high-performance programming language used for system development, game engines, and competitive programming. Strengthen your understanding of data structures, algorithms, and memory management.
Start here
A command-line application for managing personal finances. Users can add income and expense transactions, categorize them, view a summary of their financial status, and save/load their data from a file. This project focuses on data management, file I/O, and creating a structured console application.
Sign in to track progress
Basic
4 projectsA command-line application for managing personal finances. Users can add income and expense transactions, categorize them, view a summary of their financial status, and save/load their data from a file. This project focuses on data management, file I/O, and creating a structured console application.
A program that can solve any valid 9x9 Sudoku puzzle. The program will take an unsolved Sudoku grid as input and use a backtracking algorithm to find and display the solution. This project is a fantastic exercise in recursion and algorithmic thinking.
Create a command-line application to manage a small library's inventory. The system should allow librarians to add/remove books, register/unregister members, and handle the process of checking out and returning books. All data should be persisted to local files.
Develop the classic Hangman word-guessing game that runs in the console. The program will pick a random word from a predefined list, and the player has to guess the word letter by letter within a certain number of attempts.
Intermediate
6 projectsDevelop an emulator for the CHIP-8, a simple, interpreted programming language used on microcomputers in the mid-1970s. This project involves emulating a CPU, memory, graphics, and input, providing a deep understanding of how computers work at a low level. It's a classic and highly rewarding project in the emulation scene.
Build a web crawler that starts from a seed URL, fetches the page, parses it for new links, and concurrently follows them up to a specified depth. This project is a practical application of concurrency, network programming, and third-party library integration.
Create a simple search engine that can index a collection of text documents and perform fast keyword searches. You will build an inverted index, a core data structure used by all major search engines, which maps terms to the documents containing them. This project provides deep insights into data structures and information retrieval.
Recreate the classic arcade game 'Asteroids' using a simple graphics library like SFML (Simple and Fast Multimedia Library). The player controls a spaceship in a 2D field of asteroids, which they can shoot and destroy. The game gets progressively harder as asteroids break into smaller pieces.
Build a client-server chat application that allows multiple users on the same local network to communicate in real-time. This project will introduce you to network programming and basic concurrency.
Create a command-line tool that reads a Markdown file (.md) and converts it into a valid HTML file. This tool will parse basic Markdown syntax like headers, bold/italic text, lists, and links.
Advanced
4 projectsGo beyond `new` and `delete` by implementing your own memory allocator. You can design an allocator optimized for a specific pattern, such as a pool allocator for frequent allocation/deallocation of fixed-size objects. This project delves into low-level memory management and can yield significant performance improvements in C++ applications.
Create a desktop application that captures live audio from a microphone, processes it in real-time to analyze its frequency spectrum using the Fast Fourier Transform (FFT), and displays a dynamic graphical visualization of the audio. This project combines digital signal processing, real-time data handling, and graphics programming.
Develop a reusable 2D physics engine for rigid bodies. The engine should handle object motion, collision detection between various shapes (circles, boxes), and collision resolution (how objects react after a collision). This can then be integrated into a game.
Build a simple ray tracer that can render 3D scenes. A ray tracer works by simulating how light rays travel and interact with objects. The result is a photorealistic image generated purely from code and mathematical formulas. This is a classic and highly rewarding computer graphics project.
Expert
4 projectsDevelop an interactive 3D application to visualize the A* pathfinding algorithm. Users can create a 3D environment with obstacles, set a start and an end point, and watch in real-time as the algorithm explores nodes and finds the optimal path. This is a challenging project that combines advanced algorithms with 3D graphics programming.
Build a modern, high-performance task scheduler from the ground up using C++20 coroutines. This scheduler will manage a thread pool and execute asynchronous tasks efficiently, forming a powerful foundation for building high-concurrency applications like network servers or game engines. This project places you at the cutting edge of modern C++ development.
Design and build a high-performance, persistent key-value store from the ground up, similar to LevelDB or RocksDB. The engine will store data on disk using an efficient data structure and provide a simple API for Put, Get, and Delete operations.
Go beyond an interpreter and build a full compiler for a custom, simple programming language. Your compiler will parse source code, perform semantic analysis, and generate optimized machine code by using the LLVM compiler infrastructure as a backend.