A comprehensive collection of 42 School project subjects (PDFs), resources, and starter materials covering the entire curriculum — from the C Piscine to advanced specializations.
- Holy Graph
- Overview
- Repository Structure
- Global Projects
- Pool (Piscine) Projects
- Unix Branch
- Specializations
- File Types
- How to Use
- Disclaimer
The Holy Graph is the visual roadmap of the entire 42 curriculum. It shows how projects connect, unlock, and branch into specializations.
This repository contains 215+ subject PDFs and 60+ resource archives spanning the complete 42 School pedagogy. The curriculum is organized into four main sections:
| Section | Description | Projects |
|---|---|---|
| Global | Foundational C projects required by all students | 2 |
| Pool | Intensive bootcamp modules (Piscines) across 9 tracks | ~80 |
| Unix Branch | Core Unix/systems programming projects | 30 |
| Specialization | Advanced elective tracks in 8 domains | ~100 |
42/
├── Global/ # Mandatory foundational projects
│ ├── Libft/ # Custom C library
│ └── get_next_line/ # Line-by-line file reader
│
├── Pool/ # Piscine (Bootcamp) modules
│ ├── C Pool/ # 14 C exercises + 2 Shell modules
│ ├── CPP Pool/ # 9 C++ OOP modules (00–08)
│ ├── Python_for_Data_Science/ # 5 Python modules
│ ├── Piscine_Data_Science/ # 2 Data Science modules
│ ├── Django Pool/ # 9 Django web framework modules
│ ├── RoR Pool/ # 8 Ruby on Rails modules
│ ├── Pool Symfony/ # 9 Symfony PHP framework modules
│ ├── Ocaml Pool/ # 9 functional programming modules
│ └── Unity Pool/ # 7 game development modules
│
├── Unix branch/ # Core Unix/systems projects
│ ├── minishell/ # Shell implementation
│ ├── Philosophers/ # Threading & synchronization
│ ├── ft_transcendence/ # Full-stack web application
│ └── ... # 27 more projects
│
└── Specialization/ # Advanced elective tracks
├── Algo & AI & Data/ # 13 projects
├── Cryptography & Maths/# 8 projects
├── Cybersecurity/ # 18 projects
├── Development/ # 7 projects
├── Devops/ # 6 projects
├── Graphics & Gaming/ # 15 projects
├── System & Kernel/ # 23 projects
└── Web & Mobile/ # 9 projects
Mandatory projects that every 42 student must complete.
| Project | Subject | Description |
|---|---|---|
| Libft | en.subject.pdf | Build your own C standard library from scratch — string manipulation, memory management, linked lists |
| get_next_line | en.subject.pdf | Implement a function that reads a file descriptor line by line using static variables |
Intensive bootcamp modules designed to build foundational skills in a specific technology.
14 progressive C programming exercises + 2 Shell scripting modules.
| Module | Subject | Topic |
|---|---|---|
| C Piscine C 00 | en.subject.pdf | C basics — variables, loops, conditions |
| C Piscine C 01 | en.subject.pdf | Pointers & arrays |
| C Piscine C 02 | en.subject.pdf | Strings & string functions |
| C Piscine C 03 | en.subject.pdf | String comparison & search |
| C Piscine C 04 | en.subject.pdf | Number manipulation & conversion |
| C Piscine C 05 | en.subject.pdf | Recursion & iterative functions |
| C Piscine C 06 | en.subject.pdf | Program arguments (argc/argv) |
| C Piscine C 07 | en.subject.pdf | Dynamic memory allocation (malloc) |
| C Piscine C 08 | en.subject.pdf | Headers, macros & preprocessor |
| C Piscine C 09 | en.subject.pdf | Makefiles & compilation |
| C Piscine C 10 | en.subject.pdf | File I/O operations |
| C Piscine C 11 | en.subject.pdf | Function pointers |
| C Piscine C 12 | en.subject.pdf | Linked lists |
| C Piscine C 13 | en.subject.pdf | Binary trees |
| Shell 00 | en.subject.pdf | Shell basics & commands (includes resources.tar.gz) |
| Shell 01 | en.subject.pdf | Advanced shell scripting |
9 modules covering Object-Oriented Programming in C++98.
| Module | Subject | Topic |
|---|---|---|
| CPP Module 00 | en.subject.pdf | Namespaces, classes, member functions, stdio streams |
| CPP Module 01 | en.subject.pdf | Memory allocation, pointers to members, references, switch |
| CPP Module 02 | en.subject.pdf | Ad-hoc polymorphism, operator overloading, canonical form |
| CPP Module 03 | en.subject.pdf | Inheritance |
| CPP Module 04 | en.subject.pdf | Subtype polymorphism, abstract classes, interfaces |
| CPP Module 05 | en.subject.pdf | Exceptions |
| CPP Module 06 | en.subject.pdf | C++ type casting |
| CPP Module 07 | en.subject.pdf | Templates |
| CPP Module 08 | en.subject.pdf | Templated containers, iterators, algorithms |
5 modules introducing Python for scientific computing.
| Module | Subject | Topic |
|---|---|---|
| Python 0 — Starting | en.subject.pdf | Python basics & environment setup |
| Python 1 — Array | en.subject.pdf | NumPy arrays & operations |
| Python 2 — DataTable | en.subject.pdf | Pandas DataFrames (includes income.csv, population.csv, life_expectancy.csv) |
| Python 3 — OOP | en.subject.pdf | Object-Oriented Programming in Python |
| Python 4 — Dod | en.subject.pdf | Data-Oriented Design |
| Module | Subject | Resources | Topic |
|---|---|---|---|
| Data Science 0 | en.subject.pdf | subject.zip | Data Science fundamentals |
| Data Science 2 | en.subject.pdf | data_2023_feb.csv | Advanced data science |
9 modules for Python web development with Django. (Subjects in French)
| Module | Subject | Resources | Topic |
|---|---|---|---|
| Django 0 — Initiation | fr.subject.pdf | d00.tar.gz | Web basics & HTTP |
| Django 0 — Starting | fr.subject.pdf | d01.tar.gz | Project setup |
| Django 0 — Oob | fr.subject.pdf | d02.tar.gz | OOP refresher |
| Django 1 — Base Django | fr.subject.pdf | — | Django fundamentals |
| Django 1 — Lib | fr.subject.pdf | — | Libraries & packages |
| Django 2 — SQL | fr.subject.pdf | d05.tar.gz | Database & ORM |
| Django 3 — Advanced | fr.subject.pdf | ressources.tar.gz | Advanced features |
| Django 3 — Sessions | fr.subject.pdf | — | Sessions & auth |
| Django 3 — Final | fr.subject.pdf | — | Final project |
8 modules for web development with Ruby on Rails. (Subjects in French)
| Module | Subject | Resources | Topic |
|---|---|---|---|
| RoR 0 — Initiation | fr.subject.pdf | d00.tar.gz | Ruby basics |
| RoR 0 — Starting | fr.subject.pdf | d01.tar.gz | Environment setup |
| RoR 0 — Oob | fr.subject.pdf | module02.1.1.tgz | OOP in Ruby |
| RoR 1 — Base Rails | fr.subject.pdf | — | Rails fundamentals |
| RoR 1 — Gems | fr.subject.pdf | Module03.tar.gz | Gems & dependencies |
| RoR 2 — SQL | en.subject.pdf | attachmentMd05.tar.gz | Database integration |
| RoR 3 — Advanced | fr.subject.pdf | module07.1.1.tgz | Advanced Rails |
| RoR 3 — Sessions | en.subject.pdf | AttachmentMd06.tar.gz | Sessions & auth |
9 modules for PHP web development with Symfony.
| Module | Subject | Resources | Topic |
|---|---|---|---|
| Symfony 0 — Initiation | fr.subject.pdf | d00.tar.gz | PHP basics |
| Symfony 0 — Starting | fr.subject.pdf | d01.tar.gz | Environment setup |
| Symfony 0 — Oob | fr.subject.pdf | d02.tar.gz | OOP in PHP |
| Symfony 1 — Base Symfony | en.subject.pdf | — | Symfony fundamentals |
| Symfony 1 — Composer | en.subject.pdf | — | Dependency management |
| Symfony 2 — SQL | en.subject.pdf | — | Doctrine ORM |
| Symfony 3 — Advanced | en.subject.pdf | — | Advanced features |
| Symfony 3 — Sessions | en.subject.pdf | — | Sessions & auth |
| Symfony 3 — Final | en.subject.pdf | — | Final project |
9 modules covering functional programming with OCaml.
| Module | Subject | Resources | Topic |
|---|---|---|---|
| Basic Syntax and Semantics 0 | en.subject.pdf | — | OCaml fundamentals |
| Pattern Matching and Data Types 0 | en.subject.pdf | — | Pattern matching |
| Recursion and Higher Order Functions 0 | en.subject.pdf | — | Recursion & HOFs |
| Object Oriented Programming 1 | en.subject.pdf | — | OOP basics in OCaml |
| Object Oriented Programming 2 | en.subject.pdf | — | Advanced OOP |
| OCaml's Modules Language 1 | en.subject.pdf | — | Module system |
| Imperative Features 1 | en.subject.pdf | attachments.1.00.tgz | Mutable state |
| Functor 1 | en.subject.pdf | — | Functors |
| Monoids and Monads 3 | en.subject.pdf | — | Category theory |
7 modules for game development with Unity.
| Module | Subject | Topic |
|---|---|---|
| Unity 0 | en.subject.pdf | Basic Unity tools |
| Unity 1 | en.subject.pdf | 3D physics, tags, layers & scenes |
| Unity 2 | en.subject.pdf | 2D environment, tiles & sprites |
| Unity 3 | en.subject.pdf | Advanced inputs & 2D GUI |
| Unity 4 | en.subject.pdf | Animations & sound |
| Unity 5 | en.subject.pdf | Singletons, PlayerPrefs & coroutines |
| Unity 6 | en.subject.pdf | Navmesh, lighting, sound & camera |
Core Unix/systems programming projects forming the main 42 curriculum track.
| Project | Subject | Resources | Description |
|---|---|---|---|
| ft_printf | en.subject.pdf | — | Recode the C printf function |
| pipex | en.subject.pdf | — | Reproduce shell pipe behavior |
| minitalk | en.subject.pdf | — | Client-server communication using UNIX signals |
| push_swap | en.subject.pdf | — | Stack-based sorting algorithm |
| FdF | en.subject.pdf | maps.zip, minilibx-linux.tgz, minilibx_macos_sierra.tgz, minilibx_macos_metal.tgz | Wireframe 3D landscape renderer |
| fract-ol | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | Fractal visualization (Mandelbrot, Julia) |
| so_long | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | 2D tile-based game |
| Philosophers | en.subject.pdf | — | Dining philosophers — threading & mutexes |
| minishell | en.subject.pdf | — | Build a bash-like shell |
| cub3d | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | Raycasting 3D maze engine (Wolfenstein-style) |
| miniRT | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | Minimal ray tracer |
| NetPractice | en.subject.pdf | net_practice.1.9.tgz | TCP/IP network configuration exercises |
| Inception | en.subject.pdf | — | Docker container orchestration with docker-compose |
| webserv | en.subject.pdf | — | HTTP/1.1 web server in C++ |
| ft_irc | en.subject.pdf | bircd.tar.gz | IRC server implementation (RFC 2812) |
| ft_transcendence | en.subject.pdf | — | Full-stack multiplayer Pong web app |
| ft_select | en.subject.pdf | — | Terminal-based selection interface |
| ft_shmup | en.subject.pdf | — | Shoot 'em up game |
| abstract-vm | en.subject.pdf | — | Stack-based virtual machine |
| 42sh | en.subject.pdf | — | Advanced POSIX shell |
| Connect4 | en.subject.pdf | — | Connect 4 with AI opponent |
| gmbu | en.subject.pdf | demo.zip, roms.zip, gb-programming-manual.pdf | Game Boy emulator |
| filesystem | en.subject.pdf | — | File system implementation |
| AlCu | en.subject.pdf | — | Algorithm curation |
| freddie-mercury | en.subject.pdf | — | Audio/music system |
| Ftl_quantum | en.subject.pdf | — | Quantum programming introduction |
| Electronique | fr.subject.pdf | — | Electronics & FPGA (French) |
| Cow-Neck-TID | fr.subject.pdf | — | (French) |
| Old-Philosophers | en.subject.pdf | — | Legacy version of Philosophers |
| Old-IRC | en.subject.pdf | bircd.tar.gz | Legacy version of ft_irc |
Advanced elective tracks for post-common-core 42 students.
Algorithms, artificial intelligence, and data science projects.
| Project | Subject | Resources | Description |
|---|---|---|---|
| corewar | en.subject.pdf | vm_champs.zip, en.warning.pdf, fr.resources.pdf | Virtual machine & assembly language battle |
| dslr | en.subject.pdf | datasets.tgz | Data Science & logistic regression |
| expert-system | en.subject.pdf | — | Backward-chaining expert system |
| ft_linear_regression | en.subject.pdf | data.csv | Linear regression from scratch |
| gomoku | en.subject.pdf | — | Go-Moku AI opponent |
| krpsim | en.subject.pdf | resources.tgz | Resource process simulator |
| lem_in | en.subject.pdf | — | Graph traversal — ant colony pathfinding |
| multilayer-perceptron | en.subject.pdf | data.csv | Neural network from scratch |
| n-puzzle | en.subject.pdf | — | N-puzzle solver (A*, IDA*) |
| rubik | en.subject.pdf | — | Rubik's Cube solver |
| total-perspective-vortex | en.subject.pdf | — | ML with dimensionality reduction |
| wordle | en.subject.pdf | words.txt.zip | Wordle solver AI |
| zappy | en.subject.pdf | protocol-gfx.pdf | Multiplayer AI network game |
Cryptography implementations and mathematical computing.
| Project | Subject | Resources | Description |
|---|---|---|---|
| computorv1 | en.subject.pdf | — | Polynomial equation solver |
| computorv2 | en.subject.pdf | — | Advanced equation solver |
| ft_kalman | en.subject.pdf | — | Kalman filter implementation |
| ft_ssl_des | en.subject.pdf | — | DES encryption |
| ft_ssl_md5 | en.subject.pdf | — | MD5 & SHA hashing |
| ft_ssl_rsa | en.subject.pdf | — | RSA cryptography |
| matrix | en.subject.pdf | display_linux.tar.gz, display_macos.tar.gz | Matrix operations library |
| ready_set_boole | en.subject.pdf | — | Boolean algebra & set theory |
Security, binary exploitation, and systems hardening.
| Project | Subject | Resources | Description |
|---|---|---|---|
| Born2beroot | en.subject.pdf | — | Virtual machine setup & system administration |
| Snow-Crash | en.subject.pdf | SnowCrash.iso | Binary exploitation & privilege escalation |
| rainfall | en.subject.pdf | RainFall.iso | Buffer overflow & exploit challenges |
| override | en.subject.pdf | OverRide.iso | Advanced binary exploitation |
| darkly | en.subject.pdf | Darkly_i386.iso | Web vulnerability discovery |
| boot2root | en.subject.pdf | BornToSecHackMe-v1.1.iso | Full system penetration testing |
| ft_nmap | en.subject.pdf | — | Network scanner implementation |
| ft_malcolm | en.subject.pdf | — | ARP spoofing / network security |
| ft_shield | en.subject.pdf | — | System defense & hardening |
| dr-quine | en.subject.pdf | — | Self-replicating programs (quines) |
| woody-woodpacker | en.subject.pdf | resources.tgz | ELF binary packing |
| famine | en.subject.pdf | — | Virus behavior analysis |
| pestilence | en.subject.pdf | — | Advanced virus concepts |
| war | en.subject.pdf | — | Network warfare |
| death | en.subject.pdf | — | Reversing & cracking |
| Retro-MFA | en.subject.pdf | MFA.tgz | Multi-factor authentication |
| Cybersecurity-Vaccine-Web | en.subject.pdf | — | Web security testing |
| tinky-winky | en.subject.pdf | — | Windows malware analysis |
Software engineering and design projects.
| Project | Subject | Description |
|---|---|---|
| avaj-launcher | en.subject.pdf | Java — aircraft simulation (design patterns) |
| swingy | en.subject.pdf | Java — RPG game with MVC architecture |
| fix-me | en.subject.pdf | Java — financial exchange simulation |
| ft_turing | en.subject.pdf | Turing machine simulator |
| ft_ality | en.subject.pdf | Finite state machine (fighting game inputs) |
| h42n42 | en.subject.pdf | Hashmap implementation |
| Open_Project | en.subject.pdf | Free-choice development project |
Infrastructure, containerization, and network operations.
| Project | Subject | Description |
|---|---|---|
| ft_ping | en.subject.pdf | ICMP ping implementation |
| ft_traceroute | en.subject.pdf | Traceroute implementation |
| Taskmaster | en.subject.pdf | Process supervisor (like supervisord) |
| cloud-1 | en.subject.pdf | Cloud infrastructure deployment |
| Inception-of-Things | en.subject.pdf | Kubernetes & K3s cluster management |
| BGP at Doors | en.subject.pdf | BGP routing with GNS3 |
Computer graphics, 3D rendering, and game engines.
| Project | Subject | Resources | Description |
|---|---|---|---|
| scop | en.subject.pdf | minilibx-linux.tgz, minilibx_opengl.tgz, minilibx_mms_beta.tgz, resources.tgz | 3D object viewer with OpenGL |
| rt | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | Advanced ray tracer |
| doom-nukem | en.subject.pdf | minilibx-linux.tgz, minilibx_macos_opengl.tgz, minilibx_macos_metal.tgz | Doom/Duke Nukem-style 3D engine |
| mod1 | en.subject.pdf | resources.tgz | Fluid simulation |
| 42run | en.subject.pdf | minilibx_macos_opengl.tgz | Endless runner game |
| bomberman | en.subject.pdf | — | Bomberman clone |
| ft_minecraft | en.subject.pdf | — | Minecraft-style voxel engine |
| ft_vox | en.subject.pdf | — | Voxel rendering engine |
| ft_newton | en.subject.pdf | — | Physics engine |
| guimp | en.subject.pdf | — | Image editor (GIMP-like) |
| humangl | en.subject.pdf | — | OpenGL humanoid model |
| in-the-shadows | en.subject.pdf | in-the-shadows_resources.zip | Shadow & lighting effects |
| particle-system | en.subject.pdf | — | GPU particle system |
| shaderpixel | en.subject.pdf | — | GLSL shader programming |
| xv | en.subject.pdf | XV_resources.zip | Image viewer |
Low-level systems programming and kernel development.
| Project | Subject | Description |
|---|---|---|
| libasm | en.subject.pdf | x86-64 assembly library |
| malloc | en.subject.pdf | Custom memory allocator |
| nm | en.subject.pdf | ELF binary symbol parser |
| strace | en.subject.pdf | System call tracer |
| ft_linux | en.subject.pdf | Linux From Scratch |
| ft_script | en.subject.pdf | Terminal session recorder |
| little-penguin-1 | en.subject.pdf | Linux kernel module |
| drivers-and-interrupts | en.subject.pdf | Kernel drivers & IRQ handling |
| process-and-memory | en.subject.pdf | Process & memory management |
| lem-ipc | en.subject.pdf | Inter-process communication (semaphores, shared memory) |
| matt-daemon | en.subject.pdf | System daemon implementation |
| nibbler | en.subject.pdf | Snake game with dynamic library loading |
| userspace_digressions | en.subject.pdf | Advanced POSIX / userspace programming |
| kfs-1 | en.subject.pdf | Kernel From Scratch — GDT & boot |
| kfs-2 | en.subject.pdf | Kernel From Scratch — stack & memory |
| kfs-3 | en.subject.pdf | Kernel From Scratch — memory management |
| kfs-4 | en.subject.pdf | Kernel From Scratch — interrupts |
| kfs-5 | en.subject.pdf | Kernel From Scratch — processes |
| kfs-6 | en.subject.pdf | Kernel From Scratch — filesystem |
| kfs-7 | en.subject.pdf | Kernel From Scratch — syscalls |
| kfs-8 | en.subject.pdf | Kernel From Scratch — userspace |
| kfs-9 | en.subject.pdf | Kernel From Scratch — ELF & signals |
| kfs-x | en.subject.pdf | Extended KFS project |
Full-stack web applications and mobile development.
| Project | Subject | Description |
|---|---|---|
| camagru | en.subject.pdf | Photo editing & sharing web app |
| matcha | en.subject.pdf | Dating web application |
| hypertube | en.subject.pdf | Video streaming platform |
| red-tetris | en.subject.pdf | Real-time multiplayer Tetris |
| music-room | en.subject.pdf | Music collaboration platform |
| Wong_kar_Wai (2048) | en.subject.pdf | 2048 browser game |
| ft_hangouts | en.subject.pdf | Android messaging app |
| swifty-companion | en.subject.pdf | iOS app using 42 API |
| swifty-proteins | en.subject.pdf | iOS molecular structure viewer |
| Extension | Count | Description |
|---|---|---|
.pdf |
215+ | Project subject descriptions & instructions |
.tar.gz |
18 | Compressed resource archives (starter code, configs) |
.tgz |
35 | Compressed libraries & resources (minilibx, datasets) |
.zip |
8 | Compressed resources (maps, datasets, tools) |
.iso |
5 | Virtual machine disk images (cybersecurity challenges) |
.csv |
6 | Datasets for ML & data science projects |
- Browse — Navigate to the project you're interested in
- Read the PDF — Click any
en.subject.pdf(English) orfr.subject.pdf(French) link in the tables above to download the full project requirements - Download resources — Click on resource links (
.tar.gz,.tgz,.zip,.iso,.csv) directly from the tables - Extract resources — Some projects include starter materials:
tar -xzf resources.tar.gz # for .tar.gz / .tgz files unzip resources.zip # for .zip files
- Build your solution — Create your own repository and implement the project following the subject's specifications
This repository is an archive of 42 School project subjects for reference purposes. It does not contain student solutions.
"42 is a future-proof computer science training to educate the next generation of software engineers. The program takes a project-based approach to progress and is designed to develop technical and people skills that are necessary in today's ever changing world."
42 — Born to Code









