This repository serves as a detailed chronicle of my progress through the 42 programming curriculum. It showcases the development of my coding abilities and conceptual knowledge across various fields of computer science. The graphics project FDF and the group projects minishell and cub3d can be found in separate repositories.
Here's a brief overview of the projects included in this repository (for detailed informations, enter the corresponding folder):
libft (libft) - Grade: 125/100
A foundational C library containing reimplementations of many standard C functions as well as other useful utility functions. This is the first project of the 42 curriculum.
ft_printf (ft_printf) - Grade: 100/100
A custom implementation of the standard C library function printf. This project focuses on variadic functions and string formatting.
get_next_line (get_next_line) - Grade: 125/100
A function that returns a line read from a file descriptor. This project challenges memory management and file I/O skills.
Philosophers (philo) - Grade: 125/100
An implementation of the Dining Philosophers problem, a classic synchronization problem in computer science. This project delves into multithreading, mutexes, and avoiding deadlocks.
Minitalk (minitalk) - Grade: 125/100
A client-server communication program using only UNIX signals (SIGUSR1 and SIGUSR2). This project explores signal handling and binary data transmission.
FDF (FDF) - Grade: 125/100
A 3D wireframe graphics project. It reads a map of coordinates and renders it as a 3D model, exploring concepts of graphical representation and transformations.
Minishell (minishell) - Grade: 123/100
A custom-built UNIX shell that can parse and execute commands. This project covers process management, signal handling, and implementing shell features like pipes and redirections.
cub3d (cub3d) - Grade: 122/100
A 3D game engine built from scratch using raycasting techniques, inspired by Wolfenstein 3D. It involves parsing map files, rendering a 3D world, and managing player interaction.
C++ Modules (cpp_modules) - Grade: can be found individually for each module
A series of modules covering the fundamentals and advanced concepts of C++. Each module contains exercises focused on specific topics, from basic syntax to object-oriented programming.
NetPractice (NetPractice) - Grade: 100/100
A series of exercises designed to teach the basics of networking and IP addressing. The goal is to correctly configure network interfaces to allow machines to communicate.
Inception (inception) - Grade: 125/100
A project focused on system administration and containerization. It involves setting up a multi-service web application using Docker, including Nginx, WordPress, and MariaDB and many other services.