This repository contains a large sum of little projects ranging from basic concepts and algorithms to machine learning and real world applications. All projects are or will be done in c++. Check out the individual branches for specific subtopics that interest you or dive in to the main branch that encompasses them all.
Here is a first list of projects i want to or already have implemented (this list is subject to change!).
- Basic Concepts and Algorithms
- Hello World – Start with basic I/O and syntax.
- Calculator – Basic calculator with addition, subtraction, multiplication, and division.
- Math Functions – Generate and print results of well known math functions such as fibonacci, bell numbers, ...
- Number Checker - Determine if a number is prime, a palindrome, equal to the sum of its proper divisors, ...
- Guessing Game – Implement a number guessing game.
- Temperature Converter – Convert between Celsius, Fahrenheit, and Kelvin.
- Basic Sorting Algorithms – Implement bubble, selection, and insertion sorts.
- Random Number Generator – Use C++'s random library to generate numbers.
- Binary Search Algorithm – Implement binary search on a sorted array.
- Data Structures and Algorithms
- Linked List – Implement a singly and doubly linked list.
- Stack – Implement a stack data structure with push, pop, and peek functions.
- Queue – Implement a queue data structure with enqueue and dequeue functions.
- Binary Tree – Create a binary tree and implement basic traversal (in-order, pre-order, post-order).
- Hash Map – Simple hash map implementation with collision handling.
- Sorting Comparison – Compare quicksort, mergesort, and heapsort performance.
- Dynamic Array (Vector) – Implement a resizable array similar to std::vector.
- Binary Search Tree – Implement insert, search, and delete operations.
- Graph Representation – Represent graphs using adjacency lists or matrices.
- Math and Number Theory
- Euclidean Algorithm – Find the GCD of two numbers.
- Least Common Multiple (LCM) – Implement LCM calculation.
- Sieve of Eratosthenes – Generate prime numbers up to N.
- Perlin Noise Generator – Basic 1D and 2D Perlin noise.
- Fractal Generation – Mandelbrot and Julia sets.
- Random Walk Simulation – Simulate a random walk in 2D or 3D space.
- RSA Encryption – Implement a basic RSA algorithm.
- Pi Estimation – Estimate π using Monte Carlo methods.
- Matrix Operations – Implement matrix addition, subtraction, and multiplication.
- File I/O and Data Processing
- CSV Reader – Parse and read a CSV file.
- Simple Text Editor – Read, write, and edit text files.
- Binary File Operations – Work with binary files for read/write operations.
- Log Analyzer – Parse and analyze log files for patterns.
- JSON Parser – Implement a basic JSON parser.
- Object-Oriented Programming Concepts
- Bank Account System – Create classes for accounts and transactions.
- Library Management System – Manage books and patrons with classes.
- Inventory Management – Track items, quantities, and prices in a store.
- Student Management System – Store and manage student records.
- Shape Hierarchy – Create a hierarchy of shapes and calculate area/perimeter.
- Recursion and Backtracking
- Maze Solver – Solve a maze using backtracking.
- Sudoku Solver – Implement a backtracking-based Sudoku solver.
- N-Queens Problem – Place N queens on an N×N chessboard without them attacking.
- Towers of Hanoi – Solve the Towers of Hanoi problem recursively.
- Pathfinding with A Algorithm* – Implement the A* search for a simple grid.
- Concurrency and Multithreading
- Threaded Sorting – Sort an array with multiple threads.
- Producer-Consumer Problem – Use threads to simulate producers and consumers.
- Dining Philosophers – Implement a solution to the dining philosophers problem.
- Multithreaded Web Server – Implement a simple HTTP server with threads.
- Matrix Multiplication with Threads – Use multithreading to speed up matrix multiplication.
- Networking
- Simple Chat Application – Use sockets to create a basic chat application.
- TCP/UDP Echo Server – Build a simple echo server-client.
- File Transfer Protocol – Send files over a network using sockets.
- HTTP Client – Implement a basic HTTP client.
- Networked Tic-Tac-Toe – Implement a multiplayer Tic-Tac-Toe game.
- Graphics and Game Development
- Simple Console Snake Game – Create a Snake game in the console.
- ASCII Art Renderer – Render shapes and patterns in ASCII.
- Basic OpenGL Window – Use OpenGL to create a simple window.
- 2D Shapes with OpenGL – Draw shapes like circles and rectangles.
- Simple Particle System – Create a particle system for effects like smoke or fire.
- 3D Cube with OpenGL – Render a rotating 3D cube.
- Basic Ray Tracer – Implement a basic ray tracer for spheres.
- Perlin Noise Terrain – Generate a 3D terrain with Perlin noise.
- Mandelbrot Set Visualizer – Visualize the Mandelbrot set in color.
- Advanced Graphics and Simulation
- Physics Engine Basics – Implement simple physics like gravity and collision.
- Fractal Tree – Generate a fractal tree in 2D.
- 2D Game with SDL – Build a basic 2D game using the SDL library.
- Lighting and Shading in OpenGL – Implement basic lighting and shading.
- Particle System with Shaders – Use shaders to improve particle systems.
- Boids Algorithm – Simulate flocking behavior of birds or fish.
- Fluid Simulation – Simulate basic fluid dynamics.
- Machine Learning and AI
- K-means Clustering – Implement the K-means algorithm.
- Neural Network from Scratch – Build a simple neural network.
- Genetic Algorithm – Implement a basic genetic algorithm.
- Tic-Tac-Toe AI – Develop an AI to play Tic-Tac-Toe.
- Decision Tree – Implement a simple decision tree algorithm.
- Real-world Applications
- Currency Converter – Use an API to get real-time exchange rates.
- Weather Application – Fetch and display weather data.
- Encryption/Decryption Tool – Implement basic encryption algorithms.
- Web Scraper – Scrape data from a website.
- OCR Tool – Use OCR libraries to extract text from images.