Libft is the first project at 42 and serves as the foundation for many other projects. It involves recreating standard C library functions. This project aims to familiarize students with C programming and deepen their understanding of fundamental programming concepts. By the end of this project, students will have created a personal library of functions, which they can use in future projects.
The Printf project requires students to reimplement the C standard library function printf. This project focuses on handling a variety of format specifiers and managing variable argument lists. It is an excellent exercise in understanding formatted output, variadic functions, and string manipulation in C.
Get Next Line is a project where students implement a function to read a line from a file descriptor, including standard input. This project challenges students to handle memory allocation, static variables, and buffer management efficiently. It helps build a solid foundation for file and input/output operations in C.
The Push Swap project is a sorting algorithm challenge. Students must write a program that sorts data using a limited set of operations and then develop a companion program that generates the smallest possible sequence of these operations. This project emphasizes algorithmic thinking, optimization, and understanding various sorting techniques.
So Long is a graphical project that involves creating a simple 2D game using the MiniLibX graphics library. Students develop a small game where a character navigates a map to reach an exit while collecting items and avoiding obstacles. This project introduces students to game development concepts, graphics programming, and event handling.
The Minitalk project involves creating a small data exchange program using UNIX signals. Students must write a client and server program where the client sends a string to the server, which then displays it. This project provides an understanding of inter-process communication (IPC), signal handling, and the fundamentals of networking.
These projects are designed to progressively build a student's skills in C programming, algorithm development, and software engineering principles, providing a strong foundation for more advanced projects and real-world applications.