Aller au contenu

IA generative vs Advent of code

L'Advent of Code, un défi de programmation quotidien en décembre, pose des énigmes à résoudre par les participants. Mais l'impact des IA génératives sur ses classements soulève des questions. Voici des conseils pour s'y préparer efficacement sans recourir à la triche.

Photo by Elena Mozhvilo / Unsplash

Le 1er décembre au matin, petits et grands ouvrent leurs calendriers de l'Avent. Si la plupart contiennent des friandises chocolatées, certains proposent un défi bien différent : se creuser la cervelle avec des problèmes algorithmiques.

Mais la question de l'IA générative, ce domaine de l'intelligence artificielle axé sur la création de modèles capables de générer du contenu de manière autonome, pourrait compliquer ce traditionnel défi. Pour rappel, ces modèles, qui utilisent des réseaux de neurones, produisent des textes, des images, des vidéos et d'autres types de données. Les GAN (Generative Adversarial Networks) et les modèles de langage comme GPT-3 sont des exemples populaires dans ce domaine. Depuis le début de l'année, l'essor de l'IA générative est indéniable et a marqué le monde numérique dans divers domaines tels que :

L'advent of code

L'Advent of Code est un défi de programmation en ligne annuel créé par Eric Wastl. Chaque année, du 1er au 25 décembre, une nouvelle énigme de programmation est publiée chaque jour à 6 heures (heure de Paris) sur le site web de l'Advent of Code. Les participants sont alors invités à résoudre ces énigmes en utilisant des compétences en programmation et en résolution de problèmes.

Points clé

  1. Énigmes quotidiennes : un nouveau défi chaque jour, avec une difficulté croissante tout au long du mois.
  2. Langages de programmation : les participants peuvent résoudre les énigmes en utilisant le langage de programmation de leur choix.
  3. Communauté : l'Advent of Code est suivi par une grande communauté de programmeurs et de développeurs qui partagent leurs solutions et discutent des défis sur des forums en ligne.
  4. Classement : les participants peuvent soumettre leurs réponses et gagner des points pour résoudre les énigmes. Il existe également un classement mondial pour ceux qui cherchent la compétition.
  5. Diversité des énigmes : les énigmes couvrent une variété de concepts de programmation, allant des mathématiques aux algorithmes, en passant par la manipulation de données, ce qui en fait un excellent moyen d'améliorer ses compétences en résolution de problèmes.

La première édition en 2015 a compté près de 52 000 participants, et celle de 2022 a dépassé le million.

Structure des problèmes

Les problèmes de l'Advent of Code sont conçus pour être variés et stimulants, mêlant des éléments de mathématiques, d'algorithmes, de manipulation de données et de résolution de problèmes. Voici une structure typique des problèmes de l'Advent of Code :

  1. Description du problème : Chaque problème commence par une description narrative qui pose un défi ou une énigme à résoudre. Cette description peut être liée à un thème festif pour correspondre à la période de Noël.

You're minding your own business on a ship at sea when the overboard alarm goes off! You rush to see if you can help. Apparently, one of the Elves tripped and accidentally sent the sleigh keys flying into the ocean!

  1. Entrée : pour chaque problème, un jeu de données qui vous est propre vous sera fourni.
  2. Objectif : Le problème définit clairement ce que vous devez accomplir. Cela peut être de calculer une valeur, de trouver une séquence de chiffres, de déterminer un résultat, etc.

How many measurements are larger than the previous measurement?

  1. Exemple : Souvent, un exemple illustré est donné pour vous montrer comment résoudre le problème pour une petite partie des données d'entrée.
    Capture d’écran 2023-11-02 à 16.35.35.png
  2. Partie 1 et Partie 2 : La plupart des problèmes de l'Advent of Code ont deux parties. La première partie est généralement plus simple et vous permet de progresser. La seconde est souvent une extension plus complexe du problème initial.
  3. Solution : Vous devez mettre en œuvre une solution en utilisant un langage de programmation de votre choix pour résoudre le problème (votre input n'étant propre qu'à vous, la solution du voisin ne sera pas la même que la vôtre).
  4. Validation : Vous soumettez votre solution pour validation sur le site web de l'Advent of Code, qui vérifie si elle est correcte.
    Capture d’écran 2023-11-02 à 16.41.10.png

Les joueurs face à l'IA ?

En cette ère digitale marquée par l'avènement disruptif de l'IA générative, l'Advent of Code se distingue par sa célébration de l'ingéniosité et de la dextérité humaines. Les défis qu'il propose transcendent la simple technique pour insuffler une dynamique communautaire, tissée de narrations festives qui fusionnent l'esprit de Noël avec la résolution de problèmes.

Et cette année, la page d'accueil du site précise bien "à partir de décembre, n'utilisez plus l'IA pour accéder au classement mondial."

Le défi posé par l'Advent of Code réside donc toujours dans sa nature même : il s'agit d'un test de compétence en programmation et de résolution de problèmes pour les humains.

Mais comment s'assurer que les compétiteurs respectent cette consigne ?

En ce qui concerne la vérification, il est effectivement complexe de contrôler strictement que les participants n'utilisent pas d'IA pour résoudre les énigmes. Toutefois, voici quelques méthodes que les organisateurs pourraient envisager pour encourager le jeu équitable :

  1. Analyse des soumissions : des modèles de détection pourraient être mis en place pour identifier des schémas de soumission anormaux, suggérant l'utilisation d'une IA, tels que des réponses extrêmement rapides après la publication des problèmes.
  2. Vérification communautaire : la communauté de l'Advent of Code est grande et engagée. Les participants eux-mêmes pourraient signaler des comportements suspects, qui pourraient ensuite être examinés par les organisateurs.
  3. Entretiens de suivi : pour les gagnants ou ceux qui sont haut placés dans le classement, des entretiens ou des tests de vérification pourraient être mis en place pour discuter de leurs méthodes de résolution.
  4. Limitations techniques : bien qu'il soit difficile d'empêcher l'utilisation d'IA, des restrictions techniques pourraient être mises en œuvre pour limiter la fréquence des soumissions ou pour détecter les patrons d'interaction non humains.
  5. Engagement moral : la règle elle-même pourrait être conçue pour faire appel au sens de l'honneur des participants, les encourageant à suivre l'esprit du concours plutôt que la lettre.
  6. Énigmes conceptuelles : les organisateurs pourraient concevoir des énigmes qui requièrent une compréhension conceptuelle profonde ou une créativité que les IA actuelles ne peuvent pas encore simuler efficacement.

Malgré ces efforts, il est clair qu'il n'existe pas de système infaillible pour empêcher l'utilisation d'IA. L'Advent of Code repose sur la confiance et l'honnêteté des participants pour préserver l'intégrité de la compétition.

Comment se préparer à l'Advent of code ?

Si ce n'est pas votre premier rodéo face à l'Advent of code, il est probable que vous ayez déjà toutes les clés (ou du moins un certain nombre) en mains pour les futures éditions.
En revanche si c'est votre première édition, voici quelque tips pour affronter de manière sereine cet exercice :

  • Tester les éditions précédente : Les éditions précédentes sont toujours disponible sur le site de l'Advent of code. En parcourant les problèmes des années précédentes, vous aurez un bon échantillon des types de problèmes proposés.
éditions de l'Advent of code
  • Optimiser votre code : Si vous avez explorer les éditions précédentes pour vous préparez, vous avez dû vous rendre compte que certains types de problème reviennent régulièrement (ex : distance de Manhattan, jeu de la vie ...), et il est probable que vous n'ayez pas forcément envie de ré-écrire constamment le même code. Il est donc judicieux de créer des classes utilitaires qui seront réutilisables.
  • Gérer votre temps : en France, les problèmes sont disponibles dès 6h du matin. Si votre objectif est simplement de réussir les défis et non de vous classer parmi les premiers, il n'est pas nécessaire de vous lever à cette heure, surtout si vous souhaitez tenir sur les 25 jours. Beaucoup abandonnent en raison de la fatigue.
  • Amusez vous : l'Advent of Code est avant tout un défi ludique. Profitez-en et ne soyez pas trop dur avec vous-même. En vous préparant activement, vous serez mieux armé pour affronter les énigmes quotidiennes et en tirer un maximum de plaisir et d'apprentissage.

Dernier