42Tokyoアドバンスドの課題の概要

に公開

はじめに

42には、RNCP6, RNCP7なるものがある。
「RNCP認定は、フランス全土だけでなくヨーロッパ全体で認められている州認定の資格です。」らしい。42Tokyoではできなさそう。
RNCP6で学士レベル(Bac+3)、RPCP7で修士レベル(Bac+5)らしい。その上にRPCP8博士レベルがあるがそれには対応していない。
42Tokyo生向けのリンク。

2025/07/06時点での情報を載せています。

RNCP6 の要件

概要link: https://www.francecompetences.fr/recherche/rncp/39783/
要件link: https://meta.intra.42.fr/articles/rncp-6-certificate

教育要件(Pedagogical requirements)

以下は、通常の学生が認証審査(jury)に申し込むための要件です。見習いやAPL(VAE)の場合は条件が異なることがあります。

卒業生(alumni)であっても、新しいプロジェクトを完了することでRNCP要件を満たすことができます。この場合、新しいプロジェクトを含めた理論的なXP数およびレベルが使用されます。


両方のオプションに共通する要件:

  • 共通コア(common core)を完了していること
  • 共通コア以降のグループプロジェクトを2つ合格していること
  • レベル17に到達していること
  • カリキュラム開始以降、教育イベントに10回以上参加していること(外部イベントや学生団体のイベントは含まれません)
  • カリキュラムの一環として、フルタイムの職業経験を2回以上持っていること
    • 主に「Internship I」「Internship II」「Startup Internship」など
    • 一部の見習いプロジェクトが期間的に同等であれば代替可能(地元スタッフに確認)。パートタイムのプロジェクトは対象外

「Suite(シリーズ)」カテゴリのプロジェクトの中から1つを合格していること:

(※括弧内は前提プロジェクト。参考情報)

  • 42sh(minishell)
  • BADASS(NetPractice)
  • DoomNukem(cub3d)
  • Inception Of Things(inception)
  • HumanGL(scop)
  • kfs-2(kfs-1)
  • Override(rainfall)
  • Pestilence(famine)
  • RT(miniRT)
  • Total perspective vortex(dslr)

オプションに応じた追加要件:

オプション1: Web・モバイルアプリケーション開発
Web(最低15000XP、プロジェクト2つ以上)
  • Piscine Php Symfony​​(最後の子プロジェクトを合格で1プロジェクトとカウント。全て合格すると全XP獲得)
  • Piscine Python Django(上記と同様)
  • Piscine Ruby On Rails(上記と同様)
  • Camagru
  • Matcha
  • Hypertube
  • Red Tetris
  • Darkly
  • h42n42
  • Tokenizer
  • TokenizeArt
  • Music-room
Mobile(最低10000XP、プロジェクト2つ以上)
  • ft_hangouts
  • Swifty_companion
  • Swifty_proteins
  • Piscine Mobile(最後の子プロジェクトを合格で1プロジェクトとカウント。全て合格で全XP)

オプション2: アプリケーションソフトウェア開発
オブジェクト指向プログラミング(最低10000XP、プロジェクト2つ以上)
  • Bomberman
  • Nibbler
  • Piscine Php Symfony​​(上記と同様)
  • Piscine Python Django(上記と同様)
  • Piscine Ruby On Rails(上記と同様)
  • Piscine Mobile(上記と同様)
  • Piscine Object(上記と同様)
  • Camagru
  • Matcha
  • Hypertube
  • Red Tetris
  • Darkly
  • h42n42
  • ft_hangouts
  • Swifty_companion
  • Swifty_proteins
  • Avaj launcher
  • Swingy
  • fix-me
関数型プログラミング(最低10000XP、プロジェクト2つ以上)
  • Piscine OCaml(最後のプロジェクトを合格で1プロジェクトとカウント。全て合格で全XP)
  • ft_turing
  • ft_ality
  • h42n42
命令型プログラミング(最低10000XP、プロジェクト2つ以上)
  • libasm
  • zappy
  • gbmu
  • ft_linux
  • little penguin
  • taskmaster
  • strace
  • malloc
  • Matt Daemon
  • nm
  • lem_ipc
  • kfs-1
  • kfs-2
  • ft_malcolm
  • ft_ssl_md5
  • Darkly
  • Snowcrash
  • Rainfall
  • Override
  • Boot2root
  • Ft_Shield
  • Durex
  • Woody Woodpacker
  • Famine
  • Pestilence
  • ft_select
  • ft_script

RNCP7 の要件

概要link: https://www.francecompetences.fr/recherche/rncp/39774/
要件link: https://meta.intra.42.fr/articles/rncp-7-certificate

教育要件(Pedagogical requirements)

以下は、認証審査(jury)に申し込む通常の学生向けの要件です。見習い制度(apprenticeship)や APL(VAE)の場合は条件が異なる場合があります。

卒業生であっても、新たにプロジェクトを完了することで RNCP 要件を満たすことができます。その際は、新規プロジェクトを含めた理論的な XP 数とレベルが使用されます。


両オプションに共通する要件:

  • 共通コア(common core)を完了していること
  • 共通コア以降のグループプロジェクトを2つ合格していること
  • レベル21に到達していること
  • カリキュラム開始から15回以上の教育イベントに参加していること(外部イベントや学生団体イベントは除く)
  • カリキュラム内でフルタイムの職業経験を2回以上有していること
    • 主に「Internship I」「Internship II」「Startup Internship」など
    • 一部の見習いプロジェクトが同等の期間であれば代替可能(スタッフに確認)。パートタイムは不可

「Suite(シリーズ)」カテゴリのプロジェクトのうち1つを合格していること:

(※括弧内は前提プロジェクト)

  • 42sh(minishell)
  • BADASS(NetPractice)
  • DoomNukem(cub3d)
  • Inception Of Things(inception)
  • HumanGL(scop)
  • kfs-2(kfs-1)
  • Override(rainfall)
  • Pestilence(famine)
  • RT(miniRT)
  • Total perspective vortex(dslr)

オプションに応じた追加要件:

オプション1:ネットワーク情報システムアーキテクチャ
Unix/カーネル:最低 30000XP、プロジェクト2つ以上
  • libasm
  • zappy
  • gbmu
  • ft_linux
  • little penguin
  • taskmaster
  • strace
  • malloc
  • Matt Daemon
  • nm
  • lem_ipc
  • KFS 1〜10(すべてを完了する必要はない)
  • ft_script
  • ft_select
システム管理:最低 50000XP、プロジェクト3つ以上
  • cloud-1
  • BADASS
  • Inception Of Things
  • taskmaster
  • ft_ping
  • ft_traceroute
  • ft_nmap
  • Active Discovery
  • Automatic Directory
  • Administrative Directory
  • Accessible Directory
セキュリティ:最低 50000XP、プロジェクト3つ以上
  • ft_malcolm
  • ft_ssl_md5
  • Darkly
  • Snowcrash
  • Rainfall
  • Override
  • boot2root
  • ft_shield
  • Woody Woodpacker
  • Famine
  • Pestilence
  • Piscine Cybersecurity(最後の子プロジェクトを合格で1プロジェクトとしてカウント、すべて合格で全XP)
  • UnleashTheBox
  • Active Connect
  • MicroForensX
  • ActiveTechTales

オプション2:データベースアーキテクチャとデータ
Web・データベース:最低 50000XP、プロジェクト2つ以上
  • Piscine PHP Symfony​​(最後の子プロジェクトを合格で1プロジェクトとしてカウント、すべて合格で全XP)
  • Piscine Python Django(同上)
  • Piscine Ruby on Rails(同上)
  • Camagru
  • Matcha
  • Hypertube
  • Red Tetris
  • Darkly
  • h42n42
  • Tokenizer
  • TokenizeArt
  • Music-room
人工知能:最低 70000XP、プロジェクト3つ以上
  • Piscine Machine Learning​​(最後の子プロジェクトを合格で1プロジェクトとしてカウント、すべて合格で全XP)
  • Piscine Python for Data Science(同上)
  • Piscine Data Science(同上)
  • Linear regression
  • DSLR
  • Multi layer perceptron
  • Gomoku
  • Total perspective vortex
  • Expert system
  • Krpsim
  • Matrix
  • Ready set boole
  • Leaffliction
  • Learn2Slither

Advanced Cursus

Data

Piscine Data Science
about 35 hours

Introduction to data science via the different professions

Python for Data Science
about 35 hours

Piscines are an important time in your cursus, during which you will have the occasion to learn a new language, or even a new paradigm!

ft_linear_regression
about 70 hours

This project will be your first steps into AI and Machine Learning. You're going to start with a simple, basic machine learning algorithm. You will have to create a program that predicts the price of a car by using a linear function train with a gradient descent algorithm.

dslr cource

dslr
about 98 hours

Discover Data Science through this project by recreating the Hogwarts Sorting Hat using logistic regression!

-> multilayer-perceptron
about 98 hours

This project is an introduction to artificial neural networks through the implementation of a multilayer perceptron.

-> total-perspective-vortex
about 98 hours

Learn to use python tools to process large dimension data, and create a man-machine interface thanks to brainwaves.

-> Leaffliction
about 294 hours

An innovative computer vision project utilizing leaf image analysis for disease recognition.

-> Learn2Slither
about 98 hours

A cutting-edge Q-learning project focused on autonomous decision-making in a dynamic environment.

Infra

Inception-of-Things
about 200 hours

This project aims to introduce you to Kubernetes from a developer's perspective. You will have to set up small clusters and discover the mechanics of continuous integration. At the end of this project, you will be able to set up a working cluster in Docker and have a usable continuous integration pipeline for your applications.

cloud-1
about 100 hours

This project is an introduction to cloud servers.

Network & Security

Bgp At Doors of Autonomous Systems is Simple
about 200 hours

The purpose of this project is to deepen your knowledge of NetPractice. You will have to simulate several networks (VXLAN+BGP-EVPN) in GNS3.

ft_malcolm
about 49 hours

An introduction to network security with Man In The Middle attack

ft_ping
about 49 hours

Re-coding the ping command will allow you to become acquainted with raw IP communication between two machines on a network.

ft_traceroute cource

ft_traceroute
about 49 hours

Re-coding the traceroute command will be the opportunity to deepen your knowledge of TCP/IP networks by following the paths of an IP packet from one machine to another.

-> ft_nmap
about 49 hours

Re-coding the nmap command will be the opportunity to deepen your knowledge of TCP/IP networks and thus understand advanced use of threads in real life.

ft_ssl_md5 cource

ft_ssl_md5
about 49 hours

You will recode part of the OpenSSL program, specifically the MD5 Hashing Algorithm.

-> ft_ssl_des
about 49 hours

You will reimplement part of the OpenSSL program, specifically BASE64, DES-ECB, and DES-CBC.

-> ft_ssl_rsa
about 49 hours

You will code your own random prime number generator and use it to make private RSA keys.

Offencive Security

dr-quine
about 14 hours

This small algo project will get you acquainted with auto-replication problems and confront the Kleene recursion theorem.

woody-woodpacker cource

woody-woodpacker
about 49 hours

A logical follow-up project on nm/otools that is designed to modify the headers of a ELF64 file. The goal here is to add a chunk of code and hide a non-stripped part of a file.

--> ft_shield
about 196 hours

Use your skills to create a daemon to create your first basic trojan.

--> famine
about 98 hours

Welcome to the wonderful world of viruses, trojans and other … Your goal here is to put your skills on handling binary files and make your first virus. WARNING: this project is solely for educational purposes!

--> pestilence
about 196 hours

Second virus project. Reuse the Famine base to add a hiding method of your code.
Estimated time: about 196 hours

--> war
about 196 hours

Third virus project. Reuse Pestilence, and manage to have your binary modify its signature on runtime.
Estimated time: about 196 hours

--> death
about 147 hours

Last virus project. Create with your Famine, Pestilence and War a real metamorphic code.
Estimated time: about 147 hours

VM & Gaming & Network

corewar
about 196 hours

This project involves creating a virtual arena, and having simplistic-language programs fight each other. You will thus get acquainted with VM conception (with instructions it recognizes, registers, etc) and compilation problems of an assembly language in bytecode. In bonus, the pleasure to have your champions fight in the arena.

doom-nukem
about 294 hours

Doom Nukem pushes the possibilities of Raycasting much further while bringing a dimension of Game design, so you are going to have to make a mix of Doom and Duke Nukem 3D. It's up to you to find the one that suits you and that will allow you to add the requested features as well as those you want to see there.

zappy
about 294 hours

You will now create a multi-player game in a TCP/IP network. The game will consist of a server managing the game field, a graphic client which displays the state of the board, and IA clients that connect to the server to pilot a player on the filed. This is a real complete project that will let you express your creativity on top of your technical knowledge.

Cybersecurity

Cybersecurity Piscine
about 63 hours

Piscines are an important time in your cursus, during which you will have the occasion to learn a new language, or even a new paradigm!

snow-crash
about 147 hours

This project is an introduction to computer security. Snow Crash will help you discover security in various sub-domains, with a developer-oriented approach. You will become familiar with several languages (ASM, Perl, Php, etc.), develop a certain logic to understand unknown programs, and become aware of problems related to simple programming errors.

rainfall cource

rainfall
about 28 days

Rainfall is an iso challenge slightly more complex than Snow Crash. You will have to dive deep into reverse engineering, learn to reconstruct a code, and understand it to detect faults. Will you reach the last level?

override
about 196 hours

If you thought Rainfall was easy, here’s a more daunting challenge. Override is last ISO that will have you search for faults present in the protected binaries, and re-build these binaries depending on their behavior.

boot2root cource

boot2root
about 49 hours

Security Challenge.In a group, search for various means to pass root on the ISO given to you.

UnleashTheBox
about 147 hours

An immersive cybersecurity project where participants learn to exploit systems and acquire essential skills to navigate the dynamic world of information security.

Compiler

parse cource

ft_lex
about 250 hours
A project about lexical analysis and finite automata. In this project you will implement a powerful regex engine

ft_yacc
about 300 hours
A project about syntactic analysis and stack automata

binary

libasm
about 20 hours

The aim of this project is to become familiar with assembly language.

B
about 50 hours

The letter before C

compiling

cc1
about 300 hours

This project is about creating a C compiler

Linux kernel

ft_linux
about 49 hours

The first project of the Kernel branch! This is a simple LFS so that you can build your own distribution which will be used in the next projects

little-penguin-1
about 100 hours

The start of a series of challenges inspired by Eudyptula. You will get acquainted with many points of Kernel development.

Middleware ・・・?

userspace_digressions
about 294 hours

Make your own userspace init binary.

drivers-and-interrupts
about 98 hours

Learn how to connect a driver to your kernel. We will use a keyboard driver for this project.

process-and-memory
about 98 hours

An introduction to syscalls and memory management within linux kernel

filesystem
about 196 hours

Create your own filesystem, for your linux kernel.

Kernels

kfs-1
about 294 hours

Discover the world of "Kernel Programming" and learn how to create your very own Kernel from scratch.

-> kfs-2
about 294 hours

Discover the world of Kernel Programming and learn how to create your very own Kernel from scratch.

-> kfs-3
about 294 hours

Third Kernel from Scratch project. Learn how to manage the memory in you kernel.

-> kfs-4
about 196 hours

Project aimed at creating an Interrupt Description Table and handle interrupts within your Kernel

-> kfs-5
about 392 hours

You must now develop process managing in your Kernel, by implementing how to interpret the command :(){ :|:& }

-> kfs-6
about 294 hours

Keep on developping your own kernel. This project will help you set up your own filesystem.

-> kfs-7
about 630 hours

This project will teach you how to build your own syscalls for your kernel, as well as user accounts, sockets, and a Unix-like hierarchy. Almost a full kernel here!

-> kfs-8
about 196 hours

Build a module interface for your kernel.

-> kfs-9
about 245 hours

Create an ELF parser and loader for your kernel.

-> kfs-x
about 56 hours

This is the final kernel project. It just requires you to create a complete linux environment. Maybe name your kernel aswell?

Commands

nm
about 14 days

This project will educate you on a deeper comprehension of how linux handle executables, by re-creating the command nm

ft_ls
about 49 hours

For knowing the filesystem inside out, and how files and directories are sorted, you will code by yourself one of the most used command: ls.

ft_script
about 7 days

By re-coding the script command you will have the opportunity to understand interactions between user input and tty, notably line discipline as well as pseudo-terminals. Once the project finished, you will know why a Ctrl-C in your shell interrupts the ongoing program!

ft_select
about 7 days

The goal of this project is to get you started on terminal manipulation with termcaps. Here you will learn how to create a user interface for a program launched on the terminal.

malloc

malloc
about 49 hours

What’s the deal with malloc? You’ve been using it since the piscine C but it’s not a system call. Find out the workings behind optimum memory management and recode it, as well as free and realloc.

-> lem-ipc
about 98 hours

You have already seen communication between processes on a network via TCP/IP. You are now going to use other UNIX tools so that processes can communicate locally. You will discover these tools by creating a client of a classic boardgame.

-> nibbler
about 98 hours

This project in C++ will make you recode a Snake where you can switch the interface at run time

-> strace
about 49 hours

First step in a serie of projects in C language leading to creation of a mini-GDB, this project will ask you to recode strace, a tool allowing you to list syscalls done by a running program

Background program

taskmaster
about 98 hours

This program is a job control task, in any language. The project is very close to the supervisor program on your computer

-> matt-daemon
about 49 hours

A Unix project to create a server-type daemon. This server will listen on a given port and interpret a list of commands.

Object

Piscine Object
about 64 hours

Piscines are an important time in your cursus, during which you will have the occasion to learn a new language, or even a new paradigm!

libftpp
about 98 hours

This subject aims to introduce you to advanced C++ concepts through the development of complex tools and systems.

Abstract_data
about 290 hours

The multiple available containers in C++ all have a very different usage. To make sure you understand them all, let's re-implement them!

abstract-vm
about 21 days

This project puts you back in the water after the C++ piscine, and involves the creation of a virtual machine capable of executing a code in basic pseudo-ASM. You will thus use a stack for basic arithmetic operations, such as the dc command.

Java

avaj-launcher
about 50 hours

First project of the Java projects arc. Implementation of a simple Java program according to a given class diagram written in UML.

swingy
about 98 hours

This is the second project from the Java world at 42. You will learn to develop GUI applications with the SWING framework, in order to create an RPG game.

fix-me
about 196 hours

Final project of the Java Programming arc. You will write a program that simulates stock exchanges and handles trading algorithms, including networking and socket implementations.

Ocaml

Piscine ocaml
about 63 hours

Piscines are an important time in your cursus, during which you will have the occasion to learn a new language, or even a new paradigm!

ft_turing
about 98 hours

ft_turing will help you discover the turing model using imperative programming through an implementation of this model with OCaml

h42n42
about 98 hours

A project introducing the OCSIGEN framework, used to create rich applications in OCaml. The goal is to design a simulator of bugs escaping a dangerous virus.

ft_ality
about 98 hours

This project will get you acquainted with problems linked to automatic syntax analysis (“parsin”) by studying finite automation in a combat game.

2D & Simulation

mod1
about 98 hours

This simulation graphic project will have you represent a surface in 3D, on which water will flow. Empirical or scientific (with many equations), recreate a wave, a tsunami or maybe just rain on your surface.

guimp
about 147 hours

The goal of this project is to create a graphic interface library. You will have to prove it works correctly with a small 2D image software. This library must as complete and modular as possible, the goal being to re-use it in future projects, whether for projects in the graphic branch or other projects of you training.

3D Graphics & GPU & GameEngine

scop
about 49 hours

Your introduction to 3D rendering on the GPU using OpenGL, Vulkan, or Metal. Through this small graphical project, you'll explore the core concepts of modern 3D graphics.

ft_vox
about 147 hours

ft_vox is a project to introduce the voxel engine, inspired by minecraft, in which you must create a randomly generated world.

42run
about 98 hours

Do you know the mobile game Temple Run? Time to settle and create it on your own! This OpenGL project aims to create a graphic game using the power of GPUs, manipulating 3D meshes, and implementing classical gameplay features.

humangl cource

humangl
about 49 hours

This intermediate OpenGL project is an introduction to hierarchical modeling. You will learn to use matrices in order to link various parts of a humanoid model, and animate them.

bomberman
about 196 hours

Bomberman is a classic video game: as simple in its gameplay as it is fun to play! You will leverage its simplicity here to undertake your first major professional-grade C++ project. Your goal is to recode a version of Bomberman in C++ and OpenGL, with the aim of creating the most polished game possible.

particle-system
about 147 hours

This infographics project is an introduction to the fascinating world of GPU programming. You will design a particle system while meeting performance constraints, using GPU libraries such as OpenGL, OpenCL, Metal, CUDA, or Vulkan to parallelize computations.

shaderpixel
about 147 hours

Now that you are familiar with 3D objects and basic rendering techniques, we can get serious now and really work in the space of the graphic card. It’s up to you to design and create the weirdest objects thanks to shaders programming.

ft_newton
about 98 hours

Basic physics engine - motion - gravity - collisions.

GameEngine

Very_Real_Engine
about 600 hours

Create and implement a library containing all necessary tools, notably a graphics engine and a physics engine.

Unity

Unity Piscine
about 49 hours

Piscines are an important part of your curriculum, giving you the opportunity to learn a new language — or even explore a completely new paradigm!

in-the-shadows
about 147 hours

This project wants you to develop a complete game using a bit of algo and a lot of creativity.

xv
about 392 hours

This project was designed by the Daher company and has you develop a graphic interface under Unity for optimizing industrial processes.

freddie-mercury
about 14 days

VR escape game

Creativity & Team Building

Open Project
about 180 days

This project offers the opportunity for long-term project management on a topic of your choice, including some computer science related elements. Collaborate with other 42 students and complete within 6 months.

42_Collaborative_resume
about 35 hours

Build your communication and self-reflection skills by working closely with a peer. Through mutual interviews, you’ll learn to recognize and express both your strengths and theirs—helping you craft genuine, effective resumes.

Professional

Parttime

Part_Time II
about 120 days

Your first step in a company is an important milestone of your 42 training. This internship entails discovering the professional world and putting your work and adaptation skills at the service of the market. This is a first element for your resume and the opportunity to see emerge your future domain of interest.

WorkExperience

Work Experience I
about 120 days

Your first step in a company is an important milestone of your 42 training. This internship entails discovering the professional world and putting your work and adaptation skills at the service of the market. This is a first element for your resume and the opportunity to see emerge your future domain of interest.

Work Experience II
about 120 days

Your course 42 can be continued with a second period of professional integration: the second internship. This internship is the accomplishment of your journey, and will have you demonstrate your expertise professionally in a company. This will be the springboard for your career.

Startup Experience
about 120 days

A good professional integration remains one of the fundamental objectives of the school. This project offers you the possibility of founding a startup and work on it as a full-time job for the next months.

Mobile

Mobile Piscine
about 63 hours
Piscines are an important time in your cursus, during which you will have the occasion to learn a new language, or even a new paradigm!

ft_hangouts
about 49 hours

The goal of this project is to introduce you to mobile application development. You will build a contact management app for Android, allowing users to create, manage, and interact with their contacts. Throughout the project, you will learn how a mobile app works, how the Android system manages application lifecycles, and how to use the Android SDK effectively.

swifty-companion
about 49 hours

This project is an introduction to mobile programming. The goal is to create, an application which will allow you to get infos about 42students, using the API.

-> swifty-proteins
about 147 hours

This project will give you the opportunity to create 3D scenes. For the most part, you will make an application that models ligands in 3D. This will also help you to deepen your knowledge of a mobile framework.

-> Peace_Break
about 150 hours

Inspired by the classic game 'Brick Breaker', this project is a great introduction to mobile development. You'll design a user-friendly interface, manage user data, implement core gameplay features, and gain key skills in mobile app creation.

Web development

camagru
about 49 hours

This project is a warm-up for web development. You will need to create a small, Instagram-like website that allows users to create and share photomontages. From scratch, you will implement the basic functionalities commonly used by any website with a user base.

red-tetris
about 147 hours

The objective of this project is to develop a networked multiplayer Tetris game using a software stack that is exclusively Full Stack JavaScript.

music-room
about 196 hours

In a group, create a complete mobile app for collaborative playlists using a relevant SDK and API. The tasks include mobile native development, back-end development, and the creation of a REST API.

darkly
about 98 hours

Introductory project to computer security in the specific field of the web, this project will have you dissect a vulnerable website. In doing so, you will develop your own approach to thinking about security in a web application and become aware of issues related to simple development errors, both from a programming and a design perspective.

matcha
about 98 hours

This second project introduces a more advanced tool for building web applications: the micro-framework. You are invited to create a dating site in the programming language of your choice. User interaction is at the heart of this project!

hypertube
about 196 hours

Hypertube introduces you to a powerful category of tools: MVC frameworks. You will learn how to work with an MVC framework—using the programming language of your choice—to build a video streaming website with content downloaded via the BitTorrent protocol.

Web3

Tokenizer
about 98 hours

This project allows you to learn the basics in web3. You will have to create your personal token!

TokenizeArt
about 98 hours

This project allows you to learn the basics in web3. You will have to create your non-fungible token!

Algorithms

n-puzzle
about 98 hours

We are going to create, in any language, a programme capable of solving N-puzzles of various sizes, as efficiently as possible.

rubik
about 98 hours

Non-trivial algorithm project: create a Rubik’s cube solver. You can choose the language you want for this project.

lem_in
about 98 hours

Your ant colony must move from on point to another. How do you do it in the shortest time possible? This project will get you acquainted with graph traversal algorithms: your program will have to intelligently select paths and precise movements used by the ants

expert-system
about 98 hours

This project involves creating, in the language of your choice, an expert system in proposal calculation. In other words, a program that can reason on a set of rules and initial facts to deduce other facts.

krpsim
about 49 hours

This algorithm project consists of creating a program that will optimize rendering of a process graph, with some resource constraints. It’s up to you to explore the existing algorithms and choose, possibly create, what you seem most fit. For this project, you can choose the language you want

gomoku
about 196 hours

This project involves creating, in the language of your choice, a Gomoku game integrating an AI player capable of beating a human player the fastest way possible. To do this, you will implement a min-max algorithm but also do research, trial and error to find the most adapted heuristics. This will not be as easy as checkers.

Math

supplement : "in
understanding these tools, which will be valuable in the realization of your projects at
42"
• Complex numbers
• Real numbers
• Matrices
• The theory of functions

computorv1
about 49 hours

The goal of this project is to get acquainted with handling elementary math tools that may be helpful for other 42 projects. You will not “do math for doing math”, but to develop a progressive and relaxed approach to projects where these tools are needed. You can choose the language of your choice for this subject.

computorv2
about 147 hours

Now that you have programmed your equation solver, it’s time to go further. Computor V2 let’s you create your own calculator in command line, which will integrate your computor V1 as well as functions for matrix calculus, function resolution, calculation with complex numbers, etc.

Quantum

Ftl_quantum
about 98 hours

This project is an introduction to quantum programming. It will challenge you to create different quantum programs, and run them on a real quantum computer.

日本語版 (ChatGPTで翻訳)

データ

Piscine Data Science
約35時間

データサイエンスの職業紹介を通じた入門プロジェクト。

Python for Data Science
約35時間

ピシン期間中に新しい言語やパラダイムを学ぶ機会として実施。

ft_linear_regression
約70時間

機械学習とAIの初歩を学ぶプロジェクト。線形回帰と勾配降下法を用いて車の価格を予測するプログラムを作成。

dslr コース

dslr
約98時間

ロジスティック回帰を用いてホグワーツ組み分け帽子を再現することでデータサイエンスを体験。

→ multilayer-perceptron
約98時間

多層パーセプトロンの実装を通じてニューラルネットワークに入門。

→ total-perspective-vortex
約98時間

Pythonを使って高次元データを処理し、脳波を用いた人間・機械インターフェースを構築。

→ Leaffliction
約294時間

葉の画像解析による植物病識別をテーマにした革新的なコンピュータビジョンプロジェクト。

→ Learn2Slither
約98時間

動的環境下での自律的意思決定を目指すQ学習プロジェクト。


インフラ

Inception-of-Things
約200時間

開発者視点からKubernetesを学ぶ。Docker内にクラスタを構築し、CI/CDパイプラインを構成。

cloud-1
約100時間

クラウドサーバの導入と基本概念の理解。


ネットワークとセキュリティ

Bgp At Doors of Autonomous Systems is Simple
約200時間

GNS3を使ってVXLAN + BGP-EVPN構成のネットワークシミュレーションを構築。

ft_malcolm
約49時間

中間者攻撃(MITM)によるネットワークセキュリティの入門。

ft_ping
約49時間

pingコマンドを再実装し、ネットワーク上の2台のマシン間の生IP通信を理解。

ft_traceroute コース

ft_traceroute
約49時間

tracerouteコマンドを再実装し、IPパケットの経路を追跡することでTCP/IPの理解を深める。

→ ft_nmap
約49時間

nmapコマンドの再実装により、ネットワークスキャンとスレッドの実践的な使用法を学習。


ft_ssl_md5 コース

ft_ssl_md5
約49時間

OpenSSLのMD5ハッシュアルゴリズム部分を再実装。

→ ft_ssl_des
約49時間

BASE64、DES-ECB、DES-CBCを再実装。

→ ft_ssl_rsa
約49時間

ランダムな素数生成器を実装し、RSA秘密鍵を生成。


攻撃的セキュリティ(Offensive Security)

dr-quine
約14時間

自己複製問題とクレイネの再帰定理に取り組む小規模アルゴリズムプロジェクト。

woody-woodpacker コース

woody-woodpacker
約49時間

ELF64ファイルのヘッダを改変し、コードを埋め込みつつ不可視化する。

→ ft_shield
約196時間

最初のトロイの木馬を作成するためのデーモンを構築。

→ famine
約98時間

初のウイルスをバイナリ処理技術を使って作成するプロジェクト(教育目的限定)。

→ pestilence
約196時間

Famineをベースに、コードの隠蔽技術を追加。

→ war
約196時間

Pestilenceをベースに、実行時にバイナリのシグネチャを変更する機能を実装。

→ death
約147時間

Famine、Pestilence、Warを統合して、実際のメタモーフィックコードを構築。


仮想マシン・ゲーム・ネットワーク

corewar
約196時間

仮想アリーナで簡易言語のプログラム同士を戦わせ、VM設計やアセンブリバイトコードの理解を深める。

doom-nukem
約294時間

Raycastingの可能性を広げ、Doom + Duke Nukem 3Dのミックスゲームを設計。

zappy
約294時間

マルチプレイヤーゲームをTCP/IPネットワーク上で構築(サーバ、グラフィッククライアント、AIクライアント)。


サイバーセキュリティ

Cybersecurity Piscine
約63時間

セキュリティ領域の基本と新たなパラダイムを学ぶ集中コース。

snow-crash
約147時間

複数の言語やツールを使い、未知のプログラムの解析やセキュリティ上のバグを探る入門プロジェクト。

rainfall コース

rainfall
約28日

Snow Crashより難易度が高く、リバースエンジニアリングとコード再構成を主軸に進行。

override
約196時間

rainfall の上位互換。保護されたバイナリの解析・再構成を行う高度なチャレンジ。

boot2root コース

boot2root
約49時間

ISOに対してrootを奪取するセキュリティチャレンジ。

UnleashTheBox
約147時間

システムの脆弱性を突いて操作するスキルを学ぶ没入型セキュリティプロジェクト。

コンパイラ系

C言語の解析

ft_lex
約250時間

字句解析と有限オートマトンに関するプロジェクト。強力な正規表現エンジンを実装します。

ft_yacc
約300時間

構文解析とスタックオートマトンに関するプロジェクトです。

バイナリレベルの理解

libasm
約20時間

アセンブリ言語に慣れることを目的としたプロジェクト。

B
約50時間

「C言語の前の文字」― B言語に関連するユーモアあるプロジェクト名。

コンパイラの構築

cc1
約300時間

Cコンパイラを自作するプロジェクト。


Linuxカーネル系

はじめの一歩

ft_linux
約49時間

カーネル分野の最初のプロジェクト。LFS(Linux From Scratch)の構築を通じて、自分だけのLinuxディストリビューションを作成します。

little-penguin-1
約100時間

Eudyptulaチャレンジに触発されたカーネル開発入門。多くのLinuxカーネル開発の基本に触れます。


ミドルウェア?(カーネル周辺)

userspace_digressions
約294時間

自分でユーザー空間用のinitバイナリを作成します。

drivers-and-interrupts
約98時間

カーネルにデバイスドライバを接続する方法を学びます。このプロジェクトではキーボードドライバを使用。

process-and-memory
約98時間

Linuxカーネル内部でのシステムコールやメモリ管理の基礎を学びます。

filesystem
約196時間

自作Linuxカーネル用のファイルシステムを設計・構築します。


カーネルを一から構築(KFSシリーズ)

kfs-1
約294時間

「カーネルプログラミング」の世界を探求し、ゼロから自作カーネルを構築することを学びます。

→ kfs-2
約294時間

KFS-1の続き。自作カーネルをさらに進化させていきます。

→ kfs-3
約294時間

メモリ管理を自作カーネル内で実装することに焦点を当てたプロジェクト。

→ kfs-4
約196時間

割り込み記述テーブル(IDT)を作成し、カーネル内で割り込み処理を実装します。

→ kfs-5
約392時間

プロセス管理を実装します。シェル芸のコマンド :(){ :|:& };: をカーネルで解釈できるようにするのが目標。

→ kfs-6
約294時間

自作カーネルの開発を継続し、ファイルシステムを構築します。

→ kfs-7
約630時間

自作システムコール、ユーザーアカウント、ソケット、Unix風のディレクトリ構成を実装。ほぼ完全なカーネルに到達します。

→ kfs-8
約196時間

カーネル用のモジュールインターフェースを作成します。

→ kfs-9
約245時間

ELF形式のパーサおよびローダをカーネルに実装します。

→ kfs-x
約56時間

KFSシリーズ最後のプロジェクト。完全なLinux環境を構築し、カーネルに名前を付けるのもよいかもしれません。

コマンド系

nm
約14日間

Linuxが実行ファイルをどのように扱っているかを深く理解するために、nmコマンドを再実装するプロジェクトです。

ft_ls
約49時間

ファイルシステムの仕組みや、ファイル・ディレクトリのソート方法を学ぶために、lsコマンドを自作します。

ft_script
約7日間

scriptコマンドを再実装することで、TTY(端末)とユーザー入力の関係、行規律や擬似端末(pseudo-terminal)について理解できます。Ctrl+Cでプログラムが中断される理由もわかるようになります。

ft_select
約7日間

termcapsを使ったターミナルUIの構築を通じて、ターミナル操作の初歩を学びます。対話型UIの作成が目標です。


malloc系

malloc
約49時間

mallocの正体に迫るプロジェクト。C言語の標準関数のように見えるが実際にはシステムコールではない。その内部構造と最適なメモリ管理を理解し、自作(mallocfreerealloc)します。

→ lem-ipc
約98時間

TCP/IPではなく、UNIXの他のローカルプロセス間通信(IPC)手段を使って、ボードゲームのクライアントを作成します。

→ nibbler
約98時間

C++でのプロジェクト。ランタイム中にUIを切り替えられる「スネークゲーム」を作ります。

→ strace
約49時間

straceの再実装プロジェクト。実行中のプログラムが呼び出すシステムコールをリスト表示できるツール。Mini-GDB開発への第一歩。


バックグラウンドプログラム系

taskmaster
約98時間

任意の言語で「ジョブ管理プログラム(プロセスマネージャ)」を作成。PCの supervisor に相当する動作を再現します。

→ matt-daemon
約49時間

Unix系プロジェクトで、ポートを監視し、コマンドを解釈するサーバ型のデーモンを作成します。


オブジェクト指向・C++

Piscine Object
約64時間

Piscine(集中トレーニング)の期間中、新しい言語やパラダイムを学ぶ機会としてのC++入門。

libftpp
約98時間

高度なC++の概念に触れるプロジェクト。複雑なツールやシステムの開発を通じて学びます。

Abstract_data
約290時間

C++における複数のコンテナ(vector, mapなど)の特性を理解するため、それらを自ら再実装します。

abstract-vm
約21日間

C++ Piscine後の最初のプロジェクト。擬似ASM言語を解釈する仮想マシン(VM)を作成します。dcコマンドのような、スタックを使った四則演算を行います。


Java系

avaj-launcher
約50時間

Javaプロジェクトの第一弾。UMLで書かれたクラス図に従って、Javaプログラムを実装します。

swingy
約98時間

Javaプロジェクト第二弾。Swingフレームワークを用いてGUIアプリケーション(RPGゲーム)を開発します。

fix-me
約196時間

Javaアーキの最終プロジェクト。株取引所を模擬するプログラムを開発し、トレーディングアルゴリズムやネットワーク通信、ソケット処理を実装します。


OCaml系

Piscine OCaml
約63時間

Piscineの期間中、OCamlという新しい関数型言語・パラダイムに挑戦するプロジェクト。

ft_turing
約98時間

チューリングマシンの概念を、OCamlによる命令型プログラミングで実装し、学びます。

h42n42
約98時間

OCamlのOCSIGENフレームワークを学びます。ウイルスから逃げるバグ(虫)たちのシミュレータを構築。

ft_ality
約98時間

戦闘ゲームを題材にして、有限オートマトンを学びながら、自動構文解析(パーシング)にまつわる課題を体験します。

2D & シミュレーション

mod1
約98時間

このシミュレーショングラフィックプロジェクトでは、水が流れる3Dの地形を表現します。実験的な方法でも、科学的な方法(多数の方程式)でも、波、津波、または雨をシミュレーションできます。

guimp
約147時間

グラフィカルインターフェースライブラリを自作します。小さな2D画像編集ソフトでそれが正しく機能することを証明してください。このライブラリは、将来のグラフィック系またはその他のプロジェクトでも再利用できるよう、できる限り完全かつモジュール化されている必要があります。


3Dグラフィックス & GPU & ゲームエンジン

scop
約49時間

OpenGL, Vulkan, Metal などを使った GPU 上での3Dレンダリングの入門プロジェクト。現代の3Dグラフィックスの基本概念を学びます。

ft_vox
約147時間

Voxelエンジン(マインクラフト風)を初歩から学ぶプロジェクト。ランダムに生成される世界を作成します。

42run
約98時間

「Temple Run」のようなゲームを自作するプロジェクト。OpenGLを用いて、3Dメッシュを操作しつつ、GPUの力を活用してゲームを構築します。


humangl コース

humangl
約49時間

中級レベルのOpenGLプロジェクトで、階層モデリング(ヒエラルキー構造)を学びます。行列を使って人型モデルの各部位を連結し、アニメーションさせます。

bomberman
約196時間

シンプルで楽しい「ボンバーマン」の再現。C++とOpenGLを用いて、できるだけ完成度の高いゲームを目指す、初の本格的なC++プロジェクトです。

particle-system
約147時間

GPUプログラミングの入門としてのインフォグラフィックスプロジェクト。OpenGL、OpenCL、Metal、CUDA、Vulkanなどを使って並列計算を行い、パーティクルシステムを構築します。

shaderpixel
約147時間

シェーダープログラミングを使って、3Dオブジェクトをユニークに変形・描画。GPUの中で奇抜なオブジェクトを設計・生成するプロジェクトです。

ft_newton
約98時間

基本的な物理エンジン。運動、重力、衝突などの物理シミュレーションを学びます。


ゲームエンジン

Very_Real_Engine
約600時間

グラフィックスエンジンや物理エンジンなど、必要なツール群をまとめたライブラリを設計・実装します。


Unity

Unity Piscine
約49時間

Piscine(集中講座)の一環で、新しい言語やパラダイム(ここではUnityとC#)を学ぶ機会。

in-the-shadows
約147時間

ちょっとしたアルゴリズムとたくさんの創造力を駆使して、完全なゲームを開発します。

xv
約392時間

Daher社との連携プロジェクト。Unityを使って、工業プロセスの最適化を支援するグラフィカルインターフェースを開発します。

freddie-mercury
約14日間

VR脱出ゲームを作成するプロジェクト。


創造性・チームビルディング

Open Project
約180日間

6か月かけて自由なテーマ(IT関連要素含む)で長期プロジェクトを計画・実施します。他の42学生と協力し、プロジェクト管理能力も養います。

42_Collaborative_resume
約35時間

ペアを組んでお互いにインタビューを行い、自己理解・他者理解を深めながら、効果的で本物の履歴書を作成するスキルを育てます。


プロフェッショナル

パートタイム実習

Part_Time II
約120日間

企業での最初の実務経験。仕事・適応能力を発揮し、将来のキャリア分野の発見にもつながります。履歴書にも記載できる重要な経験です。


実務インターン

Work Experience I
約120日間

企業での初インターンシップ。プロの現場での業務を体験し、学びを実社会に活かします。

Work Experience II
約120日間

第二の実務経験。スキルを証明し、キャリアの出発点となる重要なステップです。

Startup Experience
約120日間

起業を本格的に体験するプロジェクト。チームでスタートアップを立ち上げ、数か月間フルタイムで取り組みます。

モバイル

Mobile Piscine
約63時間

Piscine(集中講座)は、42のカリキュラムの重要な期間です。この期間中に、新しい言語や新しいパラダイムを学ぶ機会が与えられます。

ft_hangouts
約49時間

このプロジェクトの目的は、モバイルアプリ開発への入門です。Android向けの連絡先管理アプリを構築します。ユーザーは連絡先を作成・管理・操作できるようになります。このプロジェクトを通じて、モバイルアプリの動作や、Androidのライフサイクル管理、Android SDKの効果的な使い方を学びます。

swifty-companion
約49時間

モバイルプログラミングの入門プロジェクトです。42の学生に関する情報を取得するアプリを、42のAPIを使って作成します。

swifty-proteins
約147時間

3Dシーンを構築するモバイルアプリを作成します。主にリガンド(分子)の3Dモデルを作成し、モバイルフレームワークの理解を深めます。

Peace_Break
約150時間

クラシックゲーム「ブロック崩し」にインスパイアされたこのプロジェクトでは、ユーザーフレンドリーなインターフェースを設計し、ユーザーデータを管理し、ゲームプレイ機能を実装しながら、モバイルアプリ開発の基本スキルを習得します。


Web 開発

camagru
約49時間

Web開発の準備運動となるプロジェクトです。Instagramのような小規模サイトをゼロから作成し、写真のモンタージュ作成・共有ができる機能を実装します。基本的なWeb機能をすべて自分で実装します。

red-tetris
約147時間

このプロジェクトでは、ネットワーク対戦型のテトリスゲームを作成します。使えるのは Full Stack JavaScript のみです。

music-room
約196時間

チームで、協働プレイリストを作成できるモバイルアプリを開発します。モバイルネイティブ開発、バックエンド開発、REST APIの構築などを行います。

darkly
約98時間

Webセキュリティ入門プロジェクト。脆弱なWebサイトを分析しながら、セキュリティの考え方や、よくある開発ミスについて学びます。

matcha
約98時間

Webアプリケーション構築のためのマイクロフレームワークの導入プロジェクト。好きな言語で出会い系サイトを作成します。ユーザー同士のインタラクションがメインテーマです。

hypertube
約196時間

MVCフレームワークの使い方を学びます。BitTorrentプロトコルでダウンロードされた動画を配信する、ストリーミングサイトを構築します。


Web3

Tokenizer
約98時間

Web3の基礎を学ぶプロジェクト。自分自身のパーソナルトークンを作成します。

TokenizeArt
約98時間

Web3の基本を学ぶプロジェクト。NFT(非代替性トークン)を自作します。


アルゴリズム

n-puzzle
約98時間

任意の言語で、さまざまなサイズのN-puzzleを効率的に解くプログラムを作成します。

rubik
約98時間

非常に難しいアルゴリズムプロジェクト。ルービックキューブのソルバーを実装します。使用する言語は自由です。

lem_in
約98時間

アリの群れをできるだけ短時間で目的地まで移動させるには?グラフ探索アルゴリズムを学びます。プログラムは複数の経路とアリの動きを最適に選択しなければなりません。

expert-system
約98時間

任意の言語で、ルールと初期事実から他の事実を推論できる「エキスパートシステム」を作成します。

krpsim
約49時間

処理グラフを、リソース制約のもとで最適にレンダリングするアルゴリズムプログラムを作成します。既存のアルゴリズムを調査し、必要なら自作してください。使用言語は自由です。

gomoku
約196時間

AIと対戦できる五目並べゲームを開発します。高速で人間に勝てるAIを目指します。ミニマックス法を実装し、最適なヒューリスティックを見つけるために調査や試行錯誤も必要です。チェッカーよりも難しいです。


数学

補足:「これらのツールを理解することは、42でのプロジェクトの実現において非常に価値があります」

  • 複素数
  • 実数
  • 行列
  • 関数の理論

computorv1
約49時間

42での他のプロジェクトに役立つ基本的な数学ツールの取り扱いに慣れることを目的とします。単に「数学をやる」ことが目的ではなく、必要なツールをリラックスして身につけることが狙いです。使用言語は自由です。

computorv2
約147時間

computorv1を拡張し、コマンドラインベースの電卓を作成します。行列計算、関数の解法、複素数の計算などの機能も統合します。


量子コンピューティング

Ftl_quantum
約98時間

量子プログラミングの入門プロジェクト。さまざまな量子プログラムを作成し、実際の量子コンピュータ上で実行してみます。

Discussion