Skip to content

Xxzer042xX/42-Common-Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42 Common Core 🎓



Source Profile Readme


Le tronc commun de l'École 42


📘 Le Common Core

Le Common Core constitue le tronc commun obligatoire de 42. C'est un parcours intensif où chaque étudiant développe des compétences fondamentales en programmation, principalement en C. La formation est basée sur le peer-learning et la pratique intensive du code.


🎯 Projets du Common Core

🔰 Cercle 0 - Les bases de la programmation en C

Projets du Cercle 0
  • libft

    • Recréation des fonctions essentielles de la libc
    • Premier projet en C du cursus
    • Fondamentaux de la programmation en C
    • Gestion de la mémoire (malloc, free)
    • Manipulation de chaînes de caractères
    • Création et manipulation de listes chaînées
    • Fonctions de conversion de types
    • Implémentation de fonctions mathématiques de base
    • Gestion des erreurs et des cas limites

💻 Cercle 1 - Découverte Unix et introduction aux algorithmes

Projets du Cercle 1
  • get_next_line

    • Lecture de fichier ligne par ligne
    • Gestion avancée des file descriptors
    • Allocation dynamique optimisée
    • Buffer management et memory leaks
    • Gestion de fichiers multiples simultanément
    • Utilisation des variables statiques
    • Optimisation des performances de lecture
  • ft_printf

    • Reproduction complète de printf
    • Gestion des fonctions variadiques
    • Parsing complexe de format
    • Gestion de multiples conversions (%s, %d, %x, etc.)
    • Gestion des flags de format (-, 0, ., *)
    • Optimisation des performances d'affichage
    • Gestion précise des types de données
  • Born2beroot

    • Installation complète d'un système Debian/CentOS
    • Partitionnement avancé avec LVM
    • Configuration sécurisée de SSH
    • Mise en place d'un pare-feu UFW/Firewalld
    • Politique stricte de mots de passe avec PAM
    • Configuration de sudo avec règles strictes
    • Script de monitoring système
    • Configuration de WordPress avec Lighttpd/Apache

🌟 Cercle 2 - Algorithmes et graphique

Projets du Cercle 2
  • push_swap

    • Implémentation d'algorithmes de tri efficaces
    • Optimisation avec un nombre limité d'opérations
    • Manipulation de deux piles avec règles spécifiques
    • Analyse de complexité algorithmique
    • Gestion des cas d'erreur et de la mémoire
    • Développement d'une stratégie de tri optimale
  • Premier choix:

    • minitalk

      • Communication entre processus via signaux Unix
      • Utilisation précise de SIGUSR1 et SIGUSR2
      • Gestion bit à bit des données
      • Transmission fiable de messages
      • Gestion des erreurs de transmission
      • Support Unicode et caractères spéciaux
    • ou

    • pipex

      • Reproduction du comportement des pipes shell
      • Gestion des processus fils et père
      • Redirection des entrées/sorties
      • Exécution de commandes shell
      • Gestion des erreurs et des cas limites
      • Manipulation avancée des file descriptors
  • Second choix:

    • so_long

      • Création d'un jeu 2D avec MinilibX
      • Gestion complète des événements
      • Parsing de fichier map
      • Animation de sprites
      • Gestion des collisions
      • Path finding basique
      • Optimisation du rendu graphique
    • ou

    • FdF

      • Représentation filaire 3D (Fil de Fer)
      • Transformations géométriques complexes
      • Projection isométrique et parallèle
      • Gestion avancée de la souris et du clavier
      • Parsing de fichiers de heightmap
      • Rotation et zoom du modèle
      • Gestion des couleurs et du gradient
    • ou

    • fractol

      • Création de différentes fractales (Mandelbrot, Julia...)
      • Optimisation graphique poussée
      • Gestion avancée des couleurs et palettes
      • Zoom infini et déplacement fluide
      • Interaction en temps réel
      • Multithreading pour les performances
      • Paramètres modifiables en temps réel

🚀 Cercle 3 - Programmation système et concurrence

Projets du Cercle 3
  • philosophers

    • Implémentation du problème des philosophes
    • Gestion fine des threads et mutex
    • Prévention des deadlocks
    • Synchronisation des processus
    • Gestion des ressources partagées
    • Optimisation des performances
    • Monitoring de l'état des philosophes
    • Gestion du temps précise
  • minishell

    • Création d'un shell complet style bash
    • Gestion du prompt et historique
    • Parsing complexe des commandes
    • Gestion des pipes et redirections
    • Variables d'environnement
    • Signaux et contrôle des processus
    • Builtins (cd, echo, export, etc.)
    • Gestion des quotes et caractères spéciaux
    • Expansion des variables

🌐 Cercle 4 - Réseaux et infographie

Projets du Cercle 4
  • NetPractice

    • Configuration réseau TCP/IP
    • Compréhension du modèle OSI
    • Calcul de masques de sous-réseau
    • Configuration de routage
    • Diagnostic des problèmes réseau
    • Topologie réseau
    • Sécurité réseau de base
  • Choix:

    • cub3d

      • Moteur de raycasting comme Wolfenstein 3D
      • Rendu 3D temps réel
      • Textures sur les murs
      • Gestion des sprites et transparence
      • Parsing de fichier de configuration
      • Collisions et mouvements
      • Optimisation des performances
      • Minimap et éléments d'interface
    • ou

    • miniRT

      • Moteur de raytracing complet
      • Calculs vectoriels avancés
      • Multiples objets géométriques
      • Effets de lumière et ombres
      • Réflexions et transparence
      • Anti-aliasing
      • Multi-threading pour les performances
      • Format de scène personnalisé

⚙️ Cercle 5 - Projets systèmes avancés

Projets du Cercle 5
  • inception

    • Configuration de containers Docker
    • Orchestration avec docker-compose
    • Administration système avancée
    • Configuration de Nginx, WordPress, MariaDB
    • Gestion des volumes persistants
    • Réseaux Docker personnalisés
    • SSL/TLS et sécurité
    • Scripts d'automatisation
  • webserv

    • Serveur HTTP complet en C++98
    • Gestion des requêtes HTTP
    • Configuration style Nginx
    • Support CGI complet
    • Gestion des sessions
    • Multiplexing des connexions
    • Gestion des erreurs HTTP
    • Tests de performances

🔄 Cercle 6 - C++ et Programmation orientée objet

Projets du Cercle 6
  • ft_containers

    • Implémentation des containers STL
    • Vector avec allocation dynamique
    • Map avec arbre rouge-noir
    • Stack et autres adaptateurs
    • Iterators et const_iterators
    • Templates avancés
    • RAII et exception safety
    • Tests de performances vs STL
  • ft_irc

    • Serveur IRC complet en C++98
    • Protocole IRC (RFC 1459)
    • Gestion des clients multiples
    • Commandes IRC standard
    • Channels et modes
    • Opérateurs et permissions
    • File transfer
    • Gestion des bans et kicks

⭐ Système d'Évaluation

  • Évaluation par les pairs (3 évaluations minimum)
  • Validation binaire (succès/échec)
  • Points d'expérience (XP) pour chaque projet réussi
  • Progression par niveaux
  • Défense orale des projets
  • Tests automatiques et manuels
  • Règles de notation strictes

📊 Progression

  • Chaque projet réussi débloque les suivants
  • Progression non-linéaire possible
  • Choix entre projets équivalents selon les préférences
  • Système de points d'expérience pour le niveau
  • Temps limité pour certains projets
  • Bonus disponibles sur certains projets
  • Projets avancés débloqués par le niveau

🛠️ Compétences Acquises


C | C++ | Shell | Unix | Algorithmique | Git | Docker | Réseau | Systèmes | POO



Made with ❤️ from 42 Lausanne

Part of my journey at École 42 - Exploring the depths of C programming

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published