42Cursus

These are projects learned at 42 Seoul.

C Projects

  • Implementation of C functions necessary for future assignments.
  • A project to learn about handling strings and memory.
  • Implementation of a function that reads and returns a line from a file descriptor given as a parameter.
  • A project to learn about static variables, complex string handling, and memory management.
  • Implementation of a function mimicking the printf function from stdio.h.
  • A project to understand and use variadic functions.
  • Implementation of a program that sorts one stack using two stacks with the minimum number of pop, push, rotate, and reverse rotate operations.
  • A project to learn about stack data structures and sorting algorithms.
  • Implementation of a program that displays a 2D map containing height information in 3D.
  • A project to learn about basic 3D graphics using projection and Bresenham's line algorithm.
  • Implementation of a program that mimics the shell pipeline ('|'), passing the output of one process to another.
  • A project to learn about inter-process communication.
  • Implementation of a shell program that serves as an interface between the OS and the user.
  • A project to understand and apply process management, pipelines, redirections, signal handling, command parsing, and environment variable handling.
  • Implementation of a program simulating the dining philosophers problem using multithreading.
  • A project to understand and apply concurrency, deadlocks, and methods to prevent deadlocks and race conditions.
  • Implementation of a program that allows movement within a 3D map using ray casting.
  • A project to understand and apply the mathematical principles of ray casting.

C++ Projects

  • A project to learn the core concepts of object-oriented programming such as inheritance, encapsulation, polymorphism, abstraction, overloading, overriding, interfaces, abstract classes, and C++ STL.
  • Implementation of an HTTP web server modeled after Nginx.
  • A project to understand and apply asynchronous I/O multiplexing and HTTP in a single-threaded environment.

Web Projects

  • Implementation of a single-page application (SPA) web application with online ping-pong game and chat features using JavaScript, HTML, CSS, and Bootstrap.
  • A project to understand and apply server/client communication, web application/user interaction, and socket communication.

Environment

  • A project to build Nginx, php-fpm, and MariaDB Docker images, run containers, and set up a Docker network to host a WordPress website.